Oplossing: alle invoerarrays moeten hetzelfde aantal dimensies hebben


Een fout die u kunt tegenkomen bij het gebruik van NumPy is:

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

Deze fout treedt op wanneer u twee NumPy-arrays met verschillende afmetingen probeert samen te voegen.

Het volgende voorbeeld laat zien hoe u deze fout in de praktijk kunt corrigeren.

Hoe de fout te reproduceren

Stel dat we de volgende twee NumPy-arrays hebben:

 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]

Stel nu dat we de functie concatenate() proberen te gebruiken om de twee arrays in één array te combineren:

 #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)

We ontvangen een ValueError omdat de twee arrays verschillende afmetingen hebben.

Hoe u de fout kunt oplossen

We kunnen twee methoden gebruiken om deze fout op te lossen.

Methode 1: Gebruik np.column_stack

Eén manier om de twee tabellen samen te voegen en fouten te voorkomen, is door de functie column_stack() als volgt te gebruiken:

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

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

Merk op dat we de twee arrays met succes zonder fouten kunnen samenvoegen.

Methode 2: Gebruik np.c_

We kunnen de twee tabellen ook aaneenschakelen en tegelijkertijd fouten vermijden met de functie np.c_ als volgt:

 n.p. c_ [array1, array2]

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

Merk op dat deze functie exact hetzelfde resultaat retourneert als de vorige methode.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende fouten in Python kunt oplossen:

Hoe KeyError in Panda’s te repareren
Oplossing: ValueError: Kan float NaN niet naar int converteren
Oplossing: ValueError: Operanden konden niet worden uitgezonden met vormen

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert