English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Conoscenze di base su NumPy Ndarray
Una delle caratteristiche più importanti di NumPy è il suo oggetto ndarray N-dimensionale, che è una raccolta di dati dello stesso tipo, con l'indice degli elementi della raccolta che inizia da 0.
L'oggetto ndarray è utilizzato per memorizzare array multidimensionali di elementi dello stesso tipo.
Ogni elemento dell'ndarray ha una regione di archiviazione di dimensioni identiche in memoria.
L'intero ndarray è composto da quanto segue:
Un puntatore verso i dati (un blocco di dati in memoria o in un file mappato in memoria).Tipo di dati o dtype, che descrive la griglia di valori di dimensione fissa nell'array.Una tupla che rappresenta la forma dell'array, che indica le dimensioni di ciascuna dimensione.Una tupla di spaziamento (stride), in cui gli interi indicano il numero di byte che deve essere "saltato" per passare all'elemento successivo nella dimensione corrente.
Il principale oggetto di NumPy è l'array multidimensionale omogeneo. È una tabella di elementi (solitamente numeri), tutti dello stesso tipo, indicizzati da tuple non negative di interi. Nelle dimensioni di NumPy viene chiamato asse.
Ad esempio, il punto [1, 2, 1] in uno spazio 3D ha un asse. Questo asse ha 3 elementi, quindi diciamo che la sua lunghezza è 3. Nei casi illustrati di seguito, l'array ha 2 assi. La lunghezza del primo asse è 2, e la lunghezza del secondo asse è 3.
[[ 1., 0., 0.], [ 0., 1., 2.]]
La classe di array di NumPy viene chiamata ndarray. E' importante notare che numpy.array è diverso dalla classe array della libreria Python standard, array.array, che gestisce solo array unidimensionali e offre funzionalità più limitate. Gli oggetti ndarray hanno proprietà più importanti, come elencato di seguito:
ndarray.ndim - Il numero di assi (dimensioni) dell'array. Nel mondo Python, il numero di dimensioni è chiamato rank.ndarray.shape - La dimensione dell'array. È una tupla di interi che rappresenta la dimensione di ogni dimensione dell'array. La lunghezza della tupla shape è il rank o il numero di dimensioni ndim.ndarray.size - Il numero totale di elementi dell'array. È uguale al prodotto degli elementi di shape.ndarray.dtype - Un oggetto che descrive il tipo degli elementi dell'array. È possibile creare o specificare dtype utilizzando tipi Python standard. Inoltre, NumPy fornisce i propri tipi.ndarray.itemsize - La dimensione in byte di ogni elemento dell'array. Ad esempio, l'array con elementi di tipo float64 ha itemsize di 8 (= 64/8).ndarray.data - Questa area di memoria contiene gli elementi effettivi dell'array. Di solito, non è necessario utilizzare questa proprietà perché utilizzeremo l'accesso tramite indici agli elementi dell'array.
Ecco un esempio specifico
>>> import numpy as np >>> a = np.arange(15).reshape(3, 5) >>> a array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14]] >>> a.shape (3, 5) >>> a.ndim 2 >>> a.dtype.name 'int64' >>> a.itemsize 8 >>> a.size 15 >>> type(a)
Creare un ndarray è sufficiente chiamare la funzione array di NumPy:
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
object - Array o sequenze annidatedtype - Tipo di dati degli elementi dell'array, opzionalecopy - Se l'oggetto deve essere copiato, opzionaleorder - Stile di creazione dell'array, C per la direzione delle righe, F per la direzione delle colonne, A per qualsiasi direzione (predefinito)subok - Restituisce un array coerente con il tipo di base per impostazione predefinitandmin - Specificare la dimensione minima dell'array generato
Di seguito, attraverso alcuni esempi, cercheremo di comprendere meglio l'uso di Ndarray.
>>> import numpy as np >>> a = np.array([1,2,3,4,5]) >>> print(a) [1 2 3 4 5]
>>> import numpy as np >>> a = np.array([[1,2,3],[4,5,6],[7,8,9]]) >>> print(a) [[1 2 3] [4 5 6] [7 8 9]
>>> import numpy as np >>> a = np.array([1,2,3,4,5], ndmin = 3) >>> print(a) [[[1 2 3 4 5]]]
>>> import numpy as np >>> a = np.array([1,2,3,4,5,6], dtype = float32) >>> print(a) [1. 2. 3. 4. 5. 6.]