HOWTO · NumPy
Ottenere la lunghezza dell'array di NumPy
Usa `len(array)` per ottenere la lunghezza del primo asse di un array NumPy, `array.size` per contarne tutti gli elementi e `array.shape` per conoscere la lunghezza di ciascuna dimensione.
In questa pagina
Usa len(array) per ottenere la lunghezza del primo asse di un array NumPy, array.size per contarne tutti gli elementi e array.shape per conoscere la lunghezza di ciascuna dimensione. Questi valori rispondono a domande diverse: per un array bidimensionale, la lunghezza indica il numero di righe, la dimensione indica il numero totale di elementi e la forma descrive righe e colonne.
Ottenere la lunghezza di un array NumPy e il numero totale di elementi
La funzione integrata di Python len() restituisce la lunghezza del primo asse di un array con almeno una dimensione. Per un array unidimensionale, coincide anche con il numero totale di elementi. In un array multidimensionale, invece, conta i gruppi più esterni, non ogni singolo elemento.
L’attributo ndarray.size restituisce il numero totale di elementi lungo tutti gli assi. Si usa come array.size, senza parentesi. Funziona con array unidimensionali e multidimensionali: non è necessario appiattire l’array per contarne gli elementi.
Questo esempio autonomo richiede NumPy.
Il codice e le etichette o gli output visibili in questa sezione restano in inglese.
import numpy as np
vector = np.array([1, 2, 3, 4, 5, 6])
array = np.array([[1, 2, 3], [4, 5, 6]])
print("Vector length:", len(vector))
print("Vector element count:", vector.size)
print("Array length:", len(array))
print("Array element count:", array.size)
Vector length: 6
Vector element count: 6
Array length: 2
Array element count: 6
Il vettore contiene sei elementi lungo il suo unico asse, quindi la sua lunghezza e il conteggio totale coincidono. L’array bidimensionale ha due righe, ciascuna con tre elementi. La lunghezza del primo asse indica quindi il numero di righe, mentre il conteggio totale comprende gli elementi di entrambe.
NumPy fornisce anche la funzione np.size(array), che, se non si specifica un asse, restituisce il conteggio totale. A differenza dell’attributo, la funzione accetta un asse: np.size(array, axis=1) restituisce la lunghezza del secondo asse. Scegli l’attributo per ottenere il conteggio totale e specifica un asse quando ti serve la lunghezza di una dimensione particolare. Nessuna delle due operazioni conta soltanto i valori distinti o diversi da zero.
Esaminare le dimensioni di un array NumPy
L’attributo ndarray.shape restituisce una tupla con una lunghezza per ogni asse. Si usa come array.shape, senza parentesi. La funzione corrispondente è np.shape(array) e restituisce anch’essa la forma, non un conteggio scalare degli elementi.
Per l’array bidimensionale mostrato sopra, la forma è (2, 3): due righe e tre colonne. Usa array.shape[0] per ottenere il numero di righe e array.shape[1] per quello delle colonne. Assegna i valori a rows, columns = array.shape solo se l’array ha esattamente due dimensioni.
Per un array unidimensionale di sei elementi, la forma è (6,), una tupla con un solo valore, e non l’intero 6. Una forma come (2, 3, 4) descrive tre assi. Per ottenere il numero totale di elementi, moltiplica le lunghezze di tutti gli assi: moltiplicare soltanto i primi due valori non è una regola valida per dimensioni maggiori. Se ti serve solo il totale, usa array.size.
Il numero di valori nella tupla della forma corrisponde al numero di dimensioni, disponibile anche tramite array.ndim. Un array scalare come np.array(7) ha forma () e un elemento, ma non ha un primo asse; perciò len() non è definito per questo array. Se un array non familiare non si comporta come una tabella, controllane la forma prima di indicizzarne i valori o assegnare le dimensioni a variabili.