La funzione reshape() di python
Nel linguaggio python la funzione/metodo reshape del modulo numpy mi permette di modificare la dimensione, il numero delle righe e delle colonne di un array.
reshape(nome,d)
oppure come metodo
nome.reshape(d)
- Il nome è la variabile array da trasformare. Può trattarsi di un vettore o di una matrice.
- L'argomento d indica le nuove dimensioni dell'array
La funzione reshape trasforma il vettore in una matrice multidimensionale o viceversa.
Un esempio pratico
Esempio da 1 dimensione a 2 dimensioni
Creo un vettore con 9 elementi tramite la funzione ones().
E' un array a una dimensione.
>>> import numpy as np
>>> m=np.ones(9)
Il contenuto della variabile m è
>>> m
array([1., 1., 1., 1., 1., 1., 1., 1., 1.])
Per trasformarlo in una matrice 3x3 uso la funzione reshape()
>>> m=np.reshape(m,[3,3])
Ora la variabile m è un array a due dimensioni ( righe e colonne ).
>>> m
array([[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]])
Avrei potuto ottenere lo stesso risultato usando reshape come metodo.
>>> m=m.reshape([3,3])
Il risultato è sempre lo stesso.
Esempio da 2 dimensioni a 1 dimensione
Ho un array a due dimensioni
>>> m
array([[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]])
Per trasformarlo in un array a una dimensione utilizzo reshape indicando come dimensione -1
m=np.reshape(m,-1)
La funzione reshape trasforma la matrice in un vettore a una dimensione.
m
array([1., 1., 1., 1., 1., 1., 1., 1., 1.])
E così via.