HOWTO · Python

Beheben Sie den AttributeError: 'numpy.ndarray' Object Has No Attribute 'Append' in Python

Es gibt keine solche Methode namens append für NumPy ndarray. Das ndarray steht für ein n-dimensionales Array. Anstatt append() auf ndarray aufzurufen, können wir es von einem NumPy-Objekt aus aufrufen.

Auf dieser Seite

Wie Listen oder Arrays hat NumPy keine append()-Methode für das Array; Stattdessen müssen wir die Methode append() von NumPy verwenden. Wir können mehrere NumPy-Arrays mit der Methode append() hinzufügen.

das AttributeError: 'numpy.ndarray' object has no attribute 'append' in Python

ndarray ist ein n-dimensionales NumPy-Array, das für verschiedene Zwecke nützlich ist, beispielsweise wenn wir mehrere Datentypen für ein Modell haben. Hier ist ein einfaches Beispiel dafür:

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
print(f"Type: {type(arr)}")
print(f"Dimension: {arr.ndim}")
print(f"Shape: {arr.shape}")
print(f"Element data type: {arr.dtype}")

Ausgang:

Type: <class 'numpy.ndarray'>
Dimension: 2
Shape: (2, 3)
Element data type: int32

Versuchen wir nun, ein Array an das obige Objekt ndarray anzuhängen. Wir erhalten den folgenden Fehler:

>>> arr.append([1,2])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'numpy.ndarray' object has no attribute 'append'

Es ist also klar, dass das Objekt vom Typ ndarray keine Methode namens append() enthält.

Korrigieren Sie den AttributeError: 'numpy.ndarray' object has no attribute 'append' in Python

Um ein neues Array im ndarray-Objekt anzuhängen, müssen wir sicherstellen, dass das neue Array dieselbe Dimension hat wie das vorherige innerhalb des ndarray.

So fügen wir das ndarray an:

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
arr = np.append(arr, [[7, 8, 9]], axis=0)
print(arr)

Ausgang:

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

Wenn Sie es bemerken, setzen wir hier die Achse auf 0. Wenn wir die Achse nicht erwähnt haben, wird Folgendes passieren:

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
arr = np.append(arr, [[7, 8, 9]])
print(arr)

Ausgang:

[1 2 3 4 5 6 7 8 9]

Es hat einfach alle Elemente ausgepackt und dann ein Array daraus gemacht!

Lassen Sie uns nun beobachten, was passiert, wenn wir ein Array angeben, das nicht dieselbe Dimension hat:

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
arr = np.append(arr, [[7, 8]], axis=0)

Ausgang:

ValueError: all the input array dimensions for the concatenation axis must match exactly, but along dimension 1, the array at index 0 has size 3 and the array at index 1 has a size 2

Hier haben wir den ValueError für die Dimensionsabweichung erhalten. Um mehr über den ndarray von NumPy zu erfahren, besuchen Sie diesen Blog.