Jak naprawić: obiekt „numpy.ndarray” nie ma atrybutu „indeks”.


Błąd, który możesz napotkać podczas korzystania z NumPy, to:

 AttributeError : 'numpy.ndarray' object has no attribute 'index'

Ten błąd występuje podczas próby użycia funkcji indeksu() w tablicy NumPy, dla której nie są dostępne żadne atrybuty indeksu.

Poniższy przykład pokazuje, jak w praktyce rozwiązać ten błąd.

Jak odtworzyć błąd

Załóżmy, że mamy następującą tablicę NumPy:

 import numpy as np

#create NumPy array
x = np. array ([4, 7, 3, 1, 5, 9, 9, 15, 9, 18])

Aby znaleźć wartości minimalne i maksymalne w tablicy, możemy zastosować następującą składnię:

 #find minimum and maximum values of array
min_val = np. min (x)
max_val = np. max (x)

#print minimum and maximum values
print (min_val, max_val)

1 18

Załóżmy teraz, że próbujemy znaleźć pozycję indeksu wartości minimalnej i maksymalnej w tablicy:

 #attempt to print index position of minimum value
x. index (min_val)

AttributeError : 'numpy.ndarray' object has no attribute 'index'

Otrzymujemy błąd, ponieważ nie możemy zastosować funkcji indeksu() do tablicy NumPy.

Jak rozwiązać problem

Aby znaleźć pozycję indeksu wartości minimalnej i maksymalnej w tablicy NumPy, możemy skorzystać z funkcji NumPywhere () :

 #find index position of minimum value
n.p. where (x == min_val)

(array([3]),)

#find index position of maximum value
n.p. where (x == max_val)

(array([9]),)

Z wyniku możemy zobaczyć:

  • Minimalna wartość tablicy znajduje się na pozycji indeksu 3 .
  • Maksymalna wartość tablicy znajduje się na pozycji indeksu 9 .

Możemy użyć tej samej ogólnej składni, aby znaleźć pozycję indeksu dowolnej wartości w tablicy NumPy.

Na przykład możemy użyć następującej składni, aby znaleźć, które pozycje indeksu w tablicy NumPy mają wartość 9:

 #find index positions that are equal to the value 9
n.p. where (x == 9 )

(array([5, 6, 8]),)

Z wyniku widzimy, że wszystkie wartości na pozycjach indeksu 5, 6 i 8 są równe 9 .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak naprawić inne typowe błędy w Pythonie:

Jak naprawić błąd KeyError w Pandach
Jak naprawić: ValueError: Nie można przekonwertować float NaN na int
Jak naprawić: Błąd wartości: Nie można rozgłaszać argumentów z kształtami

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *