You are on page 1of 14

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
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
o
NumPytud la n
M i
d i
i
i S
egl
à d
i t
Documentazione: rs e
n i v
Capitolo “Introduction
U to NumPy” da “Python Data Science
Handbook”, Jakeh t
y rig VanderPlas, O’Reilly, 2016
o p
C
NumPy Documentation: https://numpy.org/doc/stable/
Come settare la directory di lavoro in Jupyter
Notebook/Lab e funzione di upload o
la n
• Guida con passi (per Mac o per Windows) disponibile su M i
Ariel
d i
• Interessante però capire perché sia necessaria una procedura come
quella per un’opzione molto comune d i
t u
S
gl i
Non è però necessario cambiare la directory d e di lavoro
Esiste la funzione di Upload del file i t à directory corrente.
nella
e r s
(vedere esempio videoregistrazione)
i v
U n
ht
ri g
p y
C o
NumPy
n o
i la
iM
d
NumPy (Numerical Python) è una libreria di Pythond(ili concetto di libreria è
lo stesso già visto e usato con R) specifica per gestireS t u dati in forma di liste
(array/vettori). g l i
La lista è una struttura fondamentale d e
nell’organizzare dati. Si pensi al fatto
i t à
che tabelle possono essere viste
e r s
come sequenze di liste (ogni riga oppure
ogni colonna è una lista). Loi vstesso, strutture dati multidimensionali
n insiemi di liste. Per questo le operazioni da
possono essere viste comeU
h t
compiere su listeigdi dati sono importanti.
y r
o p
C
NumPy
Sintassi: import numpy as np n o
i la
M
di nei comandi>
import <nome della libreria> as <nome logico daiusare
u d
D: È obbligatorio usare np come nome logico?
Stl i
e g
R: No, è solo un nome che userete nel d vostro script MA è convenzione
i t à
usarlo. Questo significa che nellasdocumentazione troverete sempre usato
np quando si importa numpy e r
si usano funzioni di quella libreria, questo
i v
n script a chi deve capirlo.
per rendere più chiaroU uno
Esempio: Se leggo h t
l’istruzione np.full((3, 5), 3.14) e non so
r i g
cosa faccia layfunzione full né cosa vogliano dire i parametri, nella
o p
documentazione di quale libreria vado a cercare la descrizione?
C
NumPy
n o
Fare il download del ila
i M
notebook 02.01- i d
Understanding-Data- u d
Types.ipynb in modo da l i St
lavorare su una propria eg
copia e aprirlo con à d
i t
Jupyter Lab. ers
ni v
t U
i gh
y r
o p
C
NumPy
n o
np.zeros() Mi
la
np.ones() d i
d i
t
np.full()
S u
g l i
np.arange()
à de np.linespace()
i t np.random.random()
ers
ni v np.random.normal()
t U
i gh Cosa fa ognuna di queste funzioni?
y r
p Guardare anche la documentazione
C o ufficiale: https://numpy.org/doc/stable/
Esercizio: NumPy
n o
Usando la copia in locale del notebook, cambiare gli esempi e rieseguirli
i la
all’interno del notebook nel modo seguente: i M
i d
np.zeros(): creare lista di 50 elementi t u d
np.ones() : creare matrice 2x5, di numeri l i S
interi
np.full() : creare matrice 3x3 condvalori
g
e 12.34
np.arange() : creare lista di s i t à
10 elementi, che inizia da 6 e incrementa
di 4 e r
i v
n lista di elementi tra 0 e 100 distanziati di 5
np.linespace(): creare U
h t : creare matrice 1x10 di valori casuali tra 0 e 1
np.random.random()
r i g
y
np.random.normal()
p : creare matrice 2x10 di valori con distribuzione
o
C con media 0 e deviazione standard 1
gaussiana
Al termine, salvare il notebook modificato sul proprio repository GitHub.
NumPy: operazioni su liste (array)
n o
Fare il download del ila
i M
notebook 02.02-The- i d
Basics-Of-NumPy- u d
Arrays.ipynb in modo l i St
da lavorare su una eg
propria copia e aprirlo à d
i t
con Jupyter Lab ers
ni v
t U
i gh
y r
o p
C
NumPy: Attributi delle liste
(NumPy Array Attributes) n o
ila
i M
Eseguire le celle di codice. i d
• Cosa fa la funzione np.random.randint? Guardare t u dsulla
documentazione di Numpy l i S
• Cosa rappresentano ndim, shape, size? e g
à d
• Cosa significa dtype: int64? s i t
e r
n iv
t U
g h
y ri
o p
C
Esercizio: NumPy
n o
Usando la copia in locale del notebook (02-02-The-Basics-Of-NumPy- i la
M
Arrays.ipynb), modificare l’esempio della sezione NumPy ArrayiAttributes per:
i d
• Visualizzare i parametri ndim, shape e size anche t u d degli array x1 e x2
• Modificare x1 in modo che ndim sia uguale i S
l a 2 e shape sia uguale a (4,
5) e g
à d
• Visualizzare i valori di x1 s i t
• Cosa indica il primo parametro e r di random.randint posto al valore 10?
i v
n i nuovi valori dell’array
• Cambiarlo e visualizzareU
h t
r i g
p y
C o
Al termine, salvare il notebook modificato sul proprio repository GitHub.
NumPy: Indici delle liste
(Array Indexing: Accessing Single Elements)no
i la
Gli elementi di una lista (array) in Python possono essere selezionati i M con la
loro posizione (indice). i d
tu d
ATTENZIONE: in Python l'indice di un vettore (lista,Scolonna) parte sempre da
0, il primo elemento è sempre quello con indiceli0, non 1.
e g
Dal notebook: à d
• Eseguire tutte le celle con gli esempi s i t della sezione
r
ecambio il valore di np.random.seed(0)
• Tornando alla prima cella, ise
mettendo un valore diverso
v
n da 0, qual è l’effetto? (suggerimento: guardate
i valori degli array) t U
• Aritmetica degli i g h
array: x1[a,b] = x1[a,b] + 10 , x1[a,b] = x1[a,b] + x1[c,d]
etc. y r
o
Es. x1[0,0]p= x1[0,0] +10 , x1[0,2] = x1[0,2] + x1[0,0]
C
Esercizio: NumPy
n o
Usando la copia in locale del notebook (02-02-The-Basics-Of-NumPy-Arrays.ipynb),
modificare l’esempio della sezione Array Indexing: Accessing Single Elements i l a per:
i M
i d
• Creare un array es1 di valori casuali interi (randint) diu d
dimensione 3x5, con valore
massimo (incluso) uguale a 8. Visualizzare es1 St
• Selezionare gli elementi che hanno valore 5 (5 l i
gè un esempio, ovviamente potete
scegliere un valore diverso), prima utilizzandod e la posizione come indice, poi usando
i t à
e s
la forma negativa dalla fine dell’array (vedere esempi)
r seconda riga, il quinto elemento della prima
• Selezionare il primo elemento v della
riga, il secondo elemento
i
ndella seconda colonna, il quarto elemento della terza
t U
colonna
i g h
• Sommare 10 y r
all’elemento es1[0,0], sottrarre 5 all’elemento es1[3,2], sommare
l’elemento
o pes1[0,0] all’elemento es1[1,0] e il risultato metterlo in es1[2,0] (non
usareCi valori, usare i riferimenti alle posizioni dell’array)

You might also like