Rozwiązany błąd atrybutu „Numpy.ndarray „Obiekt nie ma atrybutu„ indeks ”

Rozwiązany błąd atrybutu „Numpy.ndarray „Obiekt nie ma atrybutu„ indeks ”
Istnieje bardzo bliskie podobieństwo między listą Python a tablicą Numpy. Chociaż implementacja może się różnić, w niektórych przypadkach pokrywają.

Dlatego możesz ulec pokusie użycia metody index () podanej na liście Python, aby uzyskać indeks elementu.

Błąd

Weźmy przykład:

my_list = [„mysql”, „postgresql”, „MongoDB”, „redis”]
drukuj (f "indeks: my_list.indeks („MongoDB”) ”)

Mamy listę Pythona zawierającą elementy czterokrotne w powyższym przykładzie. Aby znaleźć indeks elementu na liście, używamy funkcji index () i przekazujemy wartość, której szukamy jako parametr.

Jeśli element zostanie znaleziony, funkcja powinna zwrócić indeks elementu na liście. Przykładem jest to, jak pokazano:

Indeks: 2

Co się stanie, gdy próbujemy wykonać tę samą operację w tablicy Numpy?

# Importuj Numpy
importować Numpy jako NP
ARR = NP.tablica ([„mysql”, „postgresql”, „MongoDB”, „redis”])
print (f "indeks: ARR.indeks („MongoDB”) ”)

Jeśli uruchomimy powyższy kod, zwróci błąd, jak pokazano poniżej:

Błąd atrybutu występuje, gdy wywołujemy atrybut lub metodę nie zdefiniowaną dla obiektu.

Ponieważ metoda index () jest zdefiniowana tylko na liście Pythona, a nie w tablicy Numpy, powyższy kod spowoduje błąd atrybutu.

Rozwiązanie

Jeśli chcesz uzyskać indeks elementu z tablicy Numpy, możesz użyć funkcji Where.

Składnia funkcji jest jak pokazana poniżej:

Numpy.gdzie (warunek, [x, y,]/)

Możemy przyjąć powyższą funkcję, aby uzyskać indeks elementu, jak pokazano poniżej:

Drukuj (NP.gdzie (arr == 'MongoDB'))

Funkcja powinna zwrócić krotek z indeksem elementu w tablicy.

Wniosek

W tym artykule omówiono błąd atrybutów w Pythonie, dlaczego tak się dzieje i jak go rozwiązać w tablicy Numpy.

Dziękuje za przeczytanie!!