You are on page 1of 13

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
NumPy: operazioni su liste (array)
n o
ila
i M
i d
u d
l i St
eg
à d
i t
ers
ni v
t U
i gh
y r
o p
C
NumPy: Indici delle liste
(Array Slicing: One dimension, Multi dimension) n o
i la
i M
i d
Operazioni per selezionare parti di un array, sia mono dimensionale che
multi dimensionale t u d
l i S
Dal notebook: Sezione One dimensionald e g
• Eseguire tutte le celle con gli esempii t à della sezione
e r s
n i v
t U
i g h
y r
o p
C
Esercizio: NumPy
n o
modificare l’esempio della sezione Array Slicing: One dimensional per:M i l a
Usando la copia in locale del notebook (02-02-The-Basics-Of-NumPy-Arrays.ipynb),

d i
Cambiare l’array creandone uno sempre di 10 valori d i
ma che parta da 5 fino
S t u
a 15 (incluso o escluso?) l i
Rifare gli esempi delle celle modificatid eg
come:
1. primi sei valori i t à
2. elementi dopo l’indice 3 ers
iv
3. elementi dopo il terzonelemento
4. subarray con valori
t U8,9,10,11,12
5. un elemento i g h
ogni tre, partendo dal primo
y
6. un elementor ogni tre partendo dal terzo elemento
o p
C
NumPy: Indici delle liste
(Array Slicing: One dimension, Multi dimension) n o
i la
i M
i d
Operazioni per selezionare parti di un array, sia mono dimensionale che
multi dimensionale t u d
l i S
Dal notebook: Sezione Multi dimensional e g
à d
• Eseguire tutte le celle con gli esempi
s i t della sezione
• Anche quelli della sottosezione e r Accessing array rows and columns
n i v
t U
i g h
y r
o p
C
Esercizio: NumPy
Usando la copia in locale del notebook (02-02-The-Basics-Of-NumPy-Arrays.ipynb),
n o
modificare l’esempio della sezione Array Slicing: Multi dimensional per:
i la
M
Creare un array es2a di valori casuali interi (randint) dii dimensione 4x6,
con valore massimo (incluso) uguale a 15. d i d
t u
1. prime tre righe, prime tre colonne
iS
Rifare gli esempi delle celle modificati come:
g l
2. d e
seconda e terza riga, quarta, quinta e sesta colonna
i tà
3. rs
elementi dopo il terzo elemento
e
4. v
invertire l’ordine delle sole righe; invertire l’ordine delle sole colonne
ni
Creare un array es2bUdi valori casuali interi (randint) di dimensione 5x5x2,
h
con valore massimo
t
yig (incluso) uguale a 30.
r
1. selezionare il primo subarray, da quello le prime 2 righe e le colonne dalla
o p
seconda alla quarta.
C
2. selezionare da entrambi i subarray le prime due righe e prime due colonne e
invertire righe e colonne
NumPy: Indici delle liste
(Array Slicing: Subarrays as no-copy views) no
i la
i M
Subarray come vista o come copia i d
Copia: il subarray è indipendente dall’array originale, t u di dati sono stati
duplicati, se modifico uno, non si modifica anche l i S l’altro
Vista: i dati sono unici, visti in modo diverso, e g il subarray ne mostra solo
d
à uno automaticamente vedrò la
una parte dell’originale, ma se modificos i t
modifica anche nell’altro e r
n i v
Con NumPy, un subarrayUè una vista, non una copia.
h t
r i g
Dal notebook: p ySezione Subarrays as no-copy views
• Eseguire o
C tutte le celle con gli esempi della sezione
NumPy: Indici delle liste
(Array Slicing: Subarrays as no-copy views) no
i la
i M
Per avere una copia: funzione copy() i d
t u d
Dal notebook: Sezione Creating copies of arrays l i S
e g
• Eseguire tutte le celle con gli esempiddella sezione
i t à
e r s
n i v
t U
i g h
y r
o p
C
Esercizio: NumPy
n o
Usando la copia in locale del notebook (02-02-The-Basics-Of-NumPy- i la
Arrays.ipynb), modificare gli esempi di subarray come vistai oM come copia:
i d
Creare un array es3 di valori casuali interi (randint)
t u d
di dimensione 3x3, con
valore massimo (incluso) uguale a 20. li S
Rifare gli esempi delle celle modificatid eg
come:
1. visualizzare es3 i t à
2. estrarre il subarray formato e r s
dalla seconda riga (es3-sub) come vista e
visualizzarlo n i v
U
3. moltiplicare per t3 tutti gli elementi della seconda colonna di es3
4. visualizzareig h È cambiato rispetto a prima?
es3-sub.
5. estrarre y rsubarray formato dalla terza colonna di es3 come copia (es3-sub-
il
o p
C
copy)
6. sommare 10 a tutti gli elementi di es3-sub-copy e visualizzare
7. visualizzare es3. Contiene la modifica del punto 6?
NumPy: Indici delle liste
(Reshaping of arrays) n o
ila
M inewaxis
Operazioni di trasformazione di array. Funzioni reshape i d
e
Dal notebook: Sezione Reshaping of arrays t u d
1. Eseguire tutte le celle con gli esempi della i S
l sezione
g
e3, 4])
2. Provare :x = np.array([1, 2,
à d
print(x) s i t
e r
x.reshape((2,
n i v 2))
3. Provare: x[np.newaxis,U :2] e x[np.newaxis, 2:]
h t
Che operazionigavete compiuto sull’array? Spiegare.
r i
yfatto i punti 2 e 3, eseguire la cella x.reshape((3,
4. Dopo averp
1)).CViodarà un errore. Correggerlo.
NumPy: Indici delle liste
(Array Concatenation and Splitting) n o
ila
M
i vstack e
Operazioni di concatenazione di array. Funzioni concatenate,
i d
hstack
t u d
Dal notebook: Sezione Concatenation of arrays l i S
g
1. Eseguire tutte le celle con gli esempi della
e sezione
à d
s i t
Dal notebook: Sezione Splitting e rof arrays (funzioni split, hsplit e vsplit)
1. Eseguire tutte le celle n ivgli esempi della sezione
con
t U
L’operazione di
i g h
separazione (splitting) è logicamente l’opposto della
y r quindi una volta capita questa, per lo splitting è solo
concatenazione,
o
questione
p
C di provare qualche esempio ma non ci sono concetti nuovi.
Esercizio: NumPy
n o
Usando la copia in locale del notebook (02-02-The-Basics-Of-NumPy- i la
Arrays.ipynb), modificare gli esempi di concatenazione di array: i M
i d
1. Creare una lista es4 di 36 valori interi crescenti
t u d
partendo da 1
2. Trasformarlo in un array di dimensione 6x6 l i S
3. Estrarre tre subarray di dimensioned2x2 eg dalle prime due colonne (sub1,
sub2, sub3) i t à
r
4. Concatenarli (usare concatenate)
e s prima usando axis=0 poi con
n i v
axis=1 U
t
5. Da es4 estrarrehun subarray formato dalle prime due righe (sub4)
6. Concatenare r i g
sub1 a sub4. Usate hstack o vstack?
p y
C o
7. Trasformate sub4 da 2x6 a 6x2 (le 2 righe diventano 2 colonne)
8. Concatenate sub1, sub2 e sub3 a formare un nuovo array 6x2 (sub5)
9. Concatenate sub4 (trasformato) con sub5. hstack o vstack?
Esercizi
n o
i la
M
i
Gli esempi discussi sui notebook del libro vanno rifatti usando d
i una vostra copia,
u
aggiungete box di codice con variazioni agli esempi proposti,
t d consultate la
documentazione delle funzioni per provare eventuali l i Saltri parametri
«Cosa succede se cambio questo valore?», «Cosa e g succede se inverto questi
valori?»… etc. à d
s i t
e r
NON LIMITARSI n v
i A GUARDARE GLI ESEMPI
t U
i g h
y r
o p
C

You might also like