Come risolvere il problema: tutti gli array di input devono avere lo stesso numero di dimensioni


Un errore che potresti riscontrare durante l’utilizzo di NumPy è:

 ValueError : all the input arrays must have same number of dimensions

Questo errore si verifica quando si tenta di concatenare due array NumPy di dimensioni diverse.

L’esempio seguente mostra come correggere questo errore nella pratica.

Come riprodurre l’errore

Supponiamo di avere i seguenti due array NumPy:

 import numpy as np

#create first array
array1 = np. array ([[1, 2], [3, 4], [5,6], [7,8]])

print (array1) 

[[1 2]
 [3 4]
 [5 6]
 [7 8]]

#create second array 
array2 = np. array ([9,10,11,12])

print (array2)

[9 10 11 12]

Supponiamo ora di provare a utilizzare la funzione concatenate() per combinare i due array in un unico array:

 #attempt to concatenate the two arrays
n.p. concatenate ([array1, array2])

ValueError : all the input arrays must have same number of dimensions, but the array at
index 0 has 2 dimension(s) and the array at index 1 has 1 dimension(s)

Riceviamo un ValueError perché i due array hanno dimensioni diverse.

Come correggere l’errore

Possiamo utilizzare due metodi per correggere questo errore.

Metodo 1: utilizzare np.column_stack

Un modo per concatenare le due tabelle evitando errori è utilizzare la funzione column_stack() come segue:

 n.p. column_stack ((array1, array2))

array([[ 1, 2, 9],
       [3, 4, 10],
       [5, 6, 11],
       [7, 8, 12]])

Nota che siamo in grado di concatenare con successo i due array senza errori.

Metodo 2: utilizzare np.c_

Possiamo anche concatenare le due tabelle evitando errori utilizzando la funzione np.c_ come segue:

 n.p. c_ [array1, array2]

array([[ 1, 2, 9],
       [3, 4, 10],
       [5, 6, 11],
       [7, 8, 12]])

Tieni presente che questa funzione restituisce esattamente lo stesso risultato del metodo precedente.

Risorse addizionali

I seguenti tutorial spiegano come correggere altri errori comuni in Python:

Come correggere l’errore chiave nei Panda
Come risolvere il problema: ValueError: impossibile convertire float NaN in int
Come risolvere il problema: ValueError: non è stato possibile trasmettere gli operandi con le forme

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *