Funzione ndarray di numpy in python

La funzione ndarray del modulo numpy di Python mi permette di modificare il numero delle dimensioni di un array.

Ad esempio, importo il modulo numpy

>>> import numpy as np

Poi creo un array a matrice 2x3 con due righe e tre colonne

>>> M=np.array([[1, 2, 3],[4, 5, 6]])

Per trasformare l'array in una matrice 3x2 a parità di elementi utilizzo la funzione ndarray.reshape()

>>> np.ndarray.reshape(M,(3,2))

Il risultato in output è

array([[1, 2],
[3, 4],
[5, 6]])

Per trasformare la matrice iniziale in una matrice a una dimensione, ossia in un vettore digito

>>> np.ndarray.reshape(M,(1,6))

Il risultato in output è

array([[1, 2, 3, 4, 5, 6]])

Per ottenere lo stesso risultato posso usare il metodo ravel della funzione ndarray

np.ndarray.ravel(M)

Il risultato è sempre lo stesso

array([1, 2, 3, 4, 5, 6])

In tutti i casi la funzione ndarray.reshape() e ndarray.ravel() creano una vista degli elementi.

Quindi i dati sono riferimenti agli stessi indirizzi di memoria.

Per ottenere lo stesso risultato posso anche usare il metodo flatten della funzione ndarray

np.ndarray.flatten(M)

Il risultato è sempre lo stesso

array([[1, 2, 3, 4, 5, 6]])

In questo caso i dati sono memorizzati in indirizzi di memoria differenti dall'array di origine.

Il metodo transpose produce una trasposizione dell'array

>>> np.ndarray.transpose(M)

Il risultato è il seguente

array([[1, 4],
[2, 5],
[3, 6]])

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Array con Numpy (Python)

Alcune funzioni utili