So beheben sie das problem: das objekt „numpy.ndarray“ verfügt nicht über das attribut „index“.


Ein Fehler, der bei der Verwendung von NumPy auftreten kann, ist:

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

Dieser Fehler tritt auf, wenn Sie versuchen, die Funktion index() für ein NumPy-Array zu verwenden, für das keine Indexattribute verfügbar sind.

Das folgende Beispiel zeigt, wie dieser Fehler in der Praxis behoben werden kann.

So reproduzieren Sie den Fehler

Angenommen, wir haben das folgende NumPy-Array:

 import numpy as np

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

Wir können die folgende Syntax verwenden, um die minimalen und maximalen Werte im Array zu finden:

 #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

Nehmen wir nun an, wir versuchen, die Indexposition der minimalen und maximalen Werte im Array zu ermitteln:

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

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

Wir erhalten eine Fehlermeldung, weil wir eine index()- Funktion nicht auf ein NumPy-Array anwenden können.

So beheben Sie den Fehler

Um die Indexposition der Minimal- und Maximalwerte im NumPy-Array zu ermitteln, können wir die Funktion NumPywhere () verwenden:

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

Aus dem Ergebnis können wir sehen:

  • Der Minimalwert des Arrays befindet sich an der Indexposition 3 .
  • Der Maximalwert des Arrays liegt an der Indexposition 9 .

Wir können dieselbe allgemeine Syntax verwenden, um die Indexposition eines beliebigen Werts in einem NumPy-Array zu finden.

Beispielsweise können wir die folgende Syntax verwenden, um herauszufinden, welche Indexpositionen dem Wert 9 im NumPy-Array entsprechen:

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

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

Aus dem Ergebnis können wir ersehen, dass die Werte an den Indexpositionen 5, 6 und 8 alle gleich 9 sind.

Zusätzliche Ressourcen

Die folgenden Tutorials erklären, wie Sie andere häufige Fehler in Python beheben:

So beheben Sie KeyError in Pandas
So beheben Sie: ValueError: Float NaN kann nicht in int konvertiert werden
So beheben Sie: ValueError: Operanden konnten nicht mit Formen übertragen werden

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert