Sei sulla pagina 1di 22

n o

ila
i M
i d
Organizzazioni e Societàt u Digitali
d
S
(Computer &egSociety)
li
à d
Laurea in Management
s i t delle Organizzazioni
e del
e r Lavoro (MOL)
i
n v
t U
g h
ri Marco Cremonini
opy
C marco.cremonini@unimi.it
Python su cloud
n o
ila
Non esiste un vero equivalente a RStudio Cloud, che offre via web esattamente le
i M
stesse funzionalità e interfaccia della versione desktop, più altre funzionalità (ad
esempio, per gestire una classe). i d
u d
l i
Esiste qualcosa di parziale. Ad esempio PythonAnywhere.
St
(https://www.pythonanywhere.com/) e g
à d
i t
e rs
L’account Beginner è gratuito, ma ci sono molte limitazioni nelle funzionalità.
ni v
Ha preinstallato pip, non conda/Anaconda.
t U
No GUI. Si può usare la console di Python o IPython ma non Jupyter Notebook
i gh
(male per noi)
y r
p
Non lo useremo mai negli esempi, ma sempre Jupyter Notebook/Lab
o
C
R vs. Python o
la n
R Python
M i
Linguaggio di programmazione d i
Linguaggio di programmazione general
specializzato + famiglia di tool di
purpose + famiglia di tool
St u
Analisi statistiche, analisi e
g i
Sviluppo software (per web,
l
visualizzazione di dati e
soprattutto) + analisi e visualizzazione
d
i tà di dati
e rs
Ottimo tool di riferimento (IDE, Diversi tool per gestione package,
ni v
Interactive Development Environment) script, visualizzazione: Anaconda,
t U
per gestione package, script, Miniconda, Pip, IPython, Spyder etc.
i gh
visualizzazione: RStudio
y r
o p
Un tool di riferimento per uso in cloud: Alcuni tool di riferimento per uso in
C Rstudio Cloud cloud, ma con funzionalità non
complete (es. pythonanywhere)
R vs. Python o
la n
R Python
M i
Markdown: R Markdown, Jupyter d i
Markdown: Jupyter Notebook e svariati
Notebook etc. dialtri
St u
Package Repository:
g l i Package Repository:
The Comprehensive R Archive Network
d e The Python Package Index (PyPI)
(https://cran.r-project.org/) i tà (https://pypi.org/), Anaconda Cloud
+ GitHub e rs (https://anaconda.org/)
ni v + GitHub
t U
Trasformazione dati: dplyr (dati in Trasformazione dati: NumPy (dati in
i gh
formato tabellare), parte di tidyverse formato vettoriale), Pandas (dati in
y r
o p formato tabellare)
C
Visualizzazione di dati: ggplot2, parte di Visualizzazione di dati: matplotlib
tidyverse
R vs. Python o
la n
M i
R d
Python i
di
Comunità di sviluppatori e utilizzatori u
Comunità di sviluppatori e utilizzatori
St
ricca e dinamica, specializzati in analisi i
estremamente ricca e dinamica, molto
g l
statistiche e data analysis
d e eterogenei, da sviluppatori di
i t àapplicazioni web e software aziendali,
e rs fino ad analisti di dati
ni v
t U
Lettura consigliata:
i g h
r
https://towardsdatascience.com/python-vs-r-for-data-science-6a83e4541000
y
o p
C
Libro:
Python Data Science Handbook n o
Jake VanderPlas, M i l a
O’Reilly, 2016
d i
- open access d i su GitHub
t u
(https://github.com/jakevdp/Pyt
S
l i
honDataScienceHandbook)
g
à d-eformati: html, Jupyter notebook
i t
ers
ni v
t U
i gh
y r
o p
C
Sezioni che ci interessano:
1. IPython: Beyond Normal Python o
Caratteristiche e funzionalità principali di IPython, usando n
li a una
shell (terminale comandi) o con Jupyter notebook. i M
2. Introduction to NumPy i d
u d
t dati come array
Funzionalità principali, tipi di dati in Python,i S
(vettori), operazioni principali. g l
d e
3. Data Manipulation with Pandas i t à
Funzionalità principali, data
e r s
frame (dati in formato tabellare),
operazioni principali. niv
4. Visualization with t U
Matplotlib
ig h
Funzionalitàyrprincipali, similitudini con ggplot2, limitazioni à
Seaborn.op
C
Prima di esaminare il contenuto delle sezioni, consideriamo le
nuove modalità e tecnologie per presentare della documentazionen o
tecnica e script per data analysis: Jupyter notebook M i l a
d i
d i
St u
Un Jupyter Notebook è un’applicazione web l i open-source che permette
di creare e condividere documenti che e g
contengono comandi/istruzioni
d
à visualizzazione di dati e testo
funzionanti ed eseguibili, equazioni, i t
r s
descrittivo. I linguaggi di programmazione
e supportati sono: Python, R,
n i v
Julia e altri. U
h t
yr ig https://jupyter.org/
o p
C
n o
ila
i M
i d
u d
l i St
eg
à d
i t
rs
e
n i v
https://jupyter.org/ t U
i g h
Noi lo abbiamo
r
y installato sul
o p
C
nostro computer, ma esiste
anche una modalità online.
Ora proviamo anche la versione originale Notebook.
Ha delle informazioni di base utili n o
ila
i M
i d
u d
l i St
eg
à d
i t La versione web lancia un servizio
ers che si chiama Binder,
ni v
t U ricordiamocelo perché lo
i gh ritroveremo nel libro
y r
o p
C
Creiamo il nostro primo Jupyter Notebook.
Poi lo salviamo dandogli un nome e lo scarichiamo in formaton o
Markdown, Notebook e html slides. i la
M i
(seguire l’esempio in Notebook Basics)
i d
u d
l i St
eg
à d
i t
ers
ni v
t U
i g h
y r
o p
C
Ora provate ad arricchire la parte di Markdown con della
formattazione standard per un testo. n o
ila
i M
Seguire Basic Syntax , simile a html, molto semplice:
i d
https://www.markdownguide.org/basic-syntax/ t u d
Sl i
eg
à d
i t
ers
ni v
t U
i gh
y r
o p
C
Esercizio: Sintassi di base di Markdown
n o
1. Prendere una ricetta di cucina a vostra scelta (chi non i laha idea di
cosa prendere, quella degli Spaghetti alla Carbonara i Mva bene:
i d
t u d
https://ricette.giallozafferano.it/Spaghetti-alla-Carbonara.html)
2. Creare un Jupyter Notebook con l’elenco l i S degli ingredienti e le
e g
dosi, formattandolo adeguatamente à d
i t
3. Per le dosi, si usi una cellarsdi codice che automaticamente
aggiorna le dosi soltanto v e
i cambiando una variabile a cui diamo
U n
come valore il numero h t di persone (es. persone=4, persone=2,
persone=8 etc.) r i g.
p y
C o
Suggerimento: per ogni ingrediente avrò la dose per una persona
moltiplicata per la variabile persone
Esercizio: Creare un proprio repository GitHub n o
i la
i M
i d
u d
t per gli esercizi del corso.
1. Creare un proprio repository pubblico su GitHub daSusare
Guida semplice: g l i
d e
https://guides.github.com/activities/hello-world/
2. Traduzione in italiano: i t à
e r s
https://github.com/emergenzeHack/terremotocentro/wiki/002-Come-si-usa-Github
3. Salvare il notebook della n
v
i di cucina nel repository GitHub.
ricetta
4. Per ogni esercizio,h
U
vitchiederò sempre il link al vostro Jupyter Notebook caricato su
GitHub r i g
p y
C o
Un tool alternativo a Binder (versione web di Jupyter Notebook) è
stato realizzato da Google: Colaboratory (o semplicemente n Colab)
o
anche questo lo troveremo citato nel libro i l a
M i
i d
u d
l i St
Crea dei Colab Notebook che sono dei
g eJupyter Notebook con qualche
à d
variante minimale, ma soprattutto s i t usa la propria applicazione web a
cui si accede con un account e r
Google. L’integrazione con Google Drive e
n i v
GitHub consente di condividere
t U un notebook tra più utenti e lavorare in
maniera collaborativa
g h e gestire versioni di un progetto.
yri
p
ohttps://colab.research.google.com/
C
L’interfaccia è molto simile a Binder di Jupyter

n o
ila
i M
i d
u d
l i St
eg
à d
i t
e rs
ni v
t U
i gh
y r
o p
C
Integrazione con Google Drive

n o
ila
i M
i d
u d
l i St
eg
à d
i t
Per eseguire il ers
codice di una ni v
cella il pulsante t U
i gh
è a fianco di
y r
ogni cella o p
C
Leggere la documentazione presente su Google Colab
Fino a Charts: visualizing data (compreso). TensorFlow escluso.
n o
ila
i M
i d
u d
l i St
e g
à d
i t
e rs
ni v
t U
i gh
y r
o p
C
Esercizio: Modificare script su Google Colab
Anche senza avere ancora visto le
n o
funzioni delle librerie di Python, lo ila
script dovrebbe ricordarci molto i M
quelli visti con ggplot. i d
u d
Sezione Data Science, provare a:
1. cambiare il colore e la trasparenza l i St
del plot, cambiare il titolo eg
à d
2. che valori hanno ys, len(ys) e x? i t
(usare print() per vedere il valore)e rs
ni v
3. modificare lo script per avere solo
10 valori di x t U
gh
4. à poi moltiplicare per 10 la
i
y r
variazione casuale di ys
o p
C
5. à e sistemare il fill perché sia
visualizzato correttamente
o
IPythontud la n
M i
d i
i
i S
egl
à d
i t
Documentazione: rs e
n i v
Capitolo “IPython:UBeyond Normal Python” da “Python Data
Science Handbook”, h t Jake VanderPlas, O’Reilly, 2016
r i g
y
op
https://github.com/jakevdp/PythonDataScienceHandbook
C
IPython (Interactive Python)
n o
IPython è un tool che permette di eseguire comandi e script Python i la in
modo interattivo. i M
i d
u d
Qual è invece la modalità NON interattiva? St
- scrivo lo script con i comandi Python e
l i
g un editor di testo
con
- salvo il file in formato eseguibile
d
à(con estensione .py)
i t
- da un terminale comandi, e rs installato Python, eseguo il file e
avendo
ottengo i risultati n i v
t U
- ritorno nel file sorgente per eventuali modifiche, salvo nuovamente in
i h
g eseguo, ottengo i risultati, etc.
formato eseguibile,
r
p y
C o
IPython (Interactive Python)
n o
la
i
In[ ] e Out[ ] di un Jupyter Notebook non sono solo delle etichette
per numerare le celle usate per eseguire comandi, ma sono i M
delle
i d
liste che mantengono la storia dei comandi e possono
t u dessere
richiamate. i S l
e g
%history mostra la sequenza di comandi à d
s i t
e r
n i v
Non vediamo i dettagli di Uipython
h t
r i g
p y
C o

Potrebbero piacerti anche