Jak naprawić: obiekt „numpy.ndarray” nie ma atrybutu „append”.
Błąd, który możesz napotkać podczas korzystania z NumPy, to:
AttributeError: 'numpy.ndarray' object has no attribute 'append'
Ten błąd występuje, gdy próbujesz dołączyć jedną lub więcej wartości na końcu tablicy NumPy za pomocą standardowej funkcji append() Pythona.
Ponieważ NumPy nie ma atrybutu dołączania, zgłaszany jest błąd. Aby to naprawić, powinieneś zamiast tego użyć np.append() .
Poniższy przykład pokazuje, jak w praktyce skorygować ten błąd.
Jak odtworzyć błąd
Załóżmy, że próbujemy dodać nową wartość na końcu tablicy NumPy, używając standardowej funkcji append() w języku Python:
import numpy as np #define NumPy array x = np. array ([1, 4, 4, 6, 7, 12, 13, 16, 19, 22, 23]) #attempt to add the value '25' to end of NumPy array x. append (25) AttributeError: 'numpy.ndarray' object has no attribute 'append'
Otrzymujemy błąd, ponieważ NumPy nie ma atrybutu dołączania.
Jak naprawić błąd
Aby naprawić ten błąd, wystarczy zamiast tego użyć np.append() :
import numpy as np #define NumPy array x = np. array ([1, 4, 4, 6, 7, 12, 13, 16, 19, 22, 23]) #append the value '25' to end of NumPy array x = np. append (x, 25) #view updated array x array([ 1, 4, 4, 6, 7, 12, 13, 16, 19, 22, 23, 25])
Używając np.append() pomyślnie dodaliśmy wartość „25” na końcu tablicy.
Pamiętaj, że jeśli chcesz dodać tablicę NumPy na końcu innej tablicy NumPy, najlepiej użyć funkcji np.concatenate() :
import numpy as np
#define two NumPy arrays
a = np. array ([1, 4, 4, 6, 7, 12, 13, 16, 19, 22, 23])
b = np. array ([25, 26, 26, 29])
#concatenate two arrays together
c = np. concatenate ((a, b))
#view resulting array
vs
array([ 1, 4, 4, 6, 7, 12, 13, 16, 19, 22, 23, 25, 26, 26, 29])
Szczegółowe wyjaśnienie funkcji tablicy i konkatenacji można znaleźć w dokumentacji online:
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak naprawić inne typowe błędy w Pythonie:
Jak naprawić: brak modułu o nazwie pandas
Jak naprawić: brak modułu o nazwie numpy
Jak naprawić: Kolumny nakładają się, ale nie określono żadnego sufiksu