Skip to content

NumPy: Ottenere il numero di dimensioni, la forma e la dimensione di ndarray

Python

È possibile ottenere il numero di dimensioni, forma (lunghezza di ciascuna dimensione) e dimensione (numero di tutti gli elementi) dell’array NumPy con gli attributi ndim, shape e size di numpy.ndarray. La funzione incorporata len() aggiunge la dimensione della prima dimensione.

  • Numero di dimensioni dell’array NumPy:ndim
  • Forma dell’array NumPy:shape
  • Dimensione dell’array NumPy:size
  • Dimensione della prima dimensione dell’array NumPy:len()

Utilizzare i seguenti array da uno a tre dimensioni come esempi.

import numpy as np

a_1d = np.arange(3)
print(a_1d)
# [0 1 2]

a_2d = np.arange(12).reshape((3, 4))
print(a_2d)
# [[ 0  1  2  3]
#  [ 4  5  6  7]
#  [ 8  9 10 11]]

a_3d = np.arange(24).reshape((2, 3, 4))
print(a_3d)
# [[[ 0  1  2  3]
#   [ 4  5  6  7]
#   [ 8  9 10 11]]
# 
#  [[12 13 14 15]
#   [16 17 18 19]
#   [20 21 22 23]]]

Numero di dimensioni dell’array NumPy:ndim

È possibile ottenere il numero di dimensioni dell’array NumPy come valore intero int con l’attributo ndim di numpy.ndarray.

print(a_1d.ndim)
# 1

print(type(a_1d.ndim))
# <class 'int'>

print(a_2d.ndim)
# 2

print(a_3d.ndim)
# 3

Se vuoi aggiungere una nuova dimensione, usa numpy.newaxis o numpy.expand_dims(). Vedere il seguente articolo per i dettagli.

Forma dell’array NumPy:shape

Puoi ottenere la forma (= lunghezza di ciascuna dimensione) dell’array NumPy come una tupla con l’attributo shape di numpy.ndarray.

Anche nel caso di un array unidimensionale, è una tupla con un elemento invece di un valore intero. Nota che una tupla con un elemento ha una virgola finale.

print(a_1d.shape)
# (3,)

print(type(a_1d.shape))
# <class 'tuple'>

print(a_2d.shape)
# (3, 4)

print(a_3d.shape)
# (2, 3, 4)

Ad esempio, nel caso di una matrice bidimensionale, la forma è (numero di righe, numero di colonne). Se vuoi ottenere solo il numero di righe o colonne, puoi ottenere ogni elemento della tupla.

print(a_2d.shape[0])
# 3

print(a_2d.shape[1])
# 4

Puoi anche decomprimerli e assegnarli a variabili diverse.

row, col = a_2d.shape
print(row)
# 3

print(col)
# 4

Usa reshape() per la forma. Vedere il seguente articolo per i dettagli.

Dimensione dell’array NumPy:size

Puoi ottenere la dimensione (= numero totale di elementi) dell’array NumPy con l’attributo size di numpy.ndarray.

print(a_1d.size)
# 3

print(type(a_1d.size))
# <class 'int'>

print(a_2d.size)
# 12

print(a_3d.size)
# 24

Dimensione della prima dimensione dell’array NumPy:len()

len() è la funzione incorporata in Python che contiene il numero di elementi in un elenco o il numero di caratteri in una stringa.

Per numpy.ndarray, len() fornisce la dimensione della prima dimensione. Equivalente a shape[0] e anche uguale a size solo per array unidimensionali.

print(len(a_1d))
# 3

print(a_1d.shape[0])
# 3

print(a_1d.size)
# 3

print(len(a_2d))
# 3

print(a_2d.shape[0])
# 3

print(len(a_3d))
# 2

print(a_3d.shape[0])
# 2