Oplossing: 'numpy.ndarray'-object heeft geen 'index'-attribuut


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

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

Deze fout treedt op wanneer u probeert de functie index() te gebruiken op een NumPy-array, waarvoor geen indexkenmerken beschikbaar zijn.

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

Hoe de fout te reproduceren

Stel dat we de volgende NumPy-array hebben:

 import numpy as np

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

We kunnen de volgende syntaxis gebruiken om de minimum- en maximumwaarden in de array te vinden:

 #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

Stel nu dat we proberen de indexpositie van de minimum- en maximumwaarden in de array te vinden:

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

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

We ontvangen een foutmelding omdat we een index() -functie niet kunnen toepassen op een NumPy-array.

Hoe u de fout kunt oplossen

Om de indexpositie van de minimum- en maximumwaarden in de NumPy-array te vinden, kunnen we de functie NumPywhere () gebruiken:

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

Uit het resultaat kunnen we zien:

  • De minimumwaarde van de array bevindt zich op indexpositie 3 .
  • De maximale waarde van de array bevindt zich op indexpositie 9 .

We kunnen dezelfde algemene syntaxis gebruiken om de indexpositie van elke waarde in een NumPy-array te vinden.

We kunnen bijvoorbeeld de volgende syntaxis gebruiken om te bepalen welke indexposities gelijk zijn aan de waarde 9 in de NumPy-array:

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

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

Uit het resultaat kunnen we zien dat de waarden op indexposities 5, 6 en 8 allemaal gelijk zijn aan 9 .

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