So beheben sie das problem in python: das objekt „numpy.ndarray“ kann nicht aufgerufen werden


Ein häufiger Fehler, der bei der Verwendung von NumPy in Python auftreten kann, ist:

 TypeError : 'numpy.ndarray' object is not callable

Dieser Fehler tritt normalerweise auf, wenn versucht wird, ein NumPy-Array als Funktion mit runden Klammern () anstelle von eckigen Klammern [ ] aufzurufen.

Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.

So reproduzieren Sie den Fehler

Angenommen, wir haben das folgende NumPy-Array:

 import numpy as np

#create NumPy array
x = np. array ([2, 4, 4, 5, 9, 12, 14, 17, 18, 20, 22, 25])

Nehmen wir nun an, wir versuchen, auf das erste Element des Arrays zuzugreifen:

 #attempt to access the first element in the array
x(0)

TypeError : 'numpy.ndarray' object is not callable

Da wir runde () -Klammern verwendet haben, geht Python davon aus, dass wir versuchen, das NumPy- x- Array als Funktion aufzurufen.

Da x keine Funktion ist, erhalten wir eine Fehlermeldung.

So beheben Sie den Fehler

Die Möglichkeit, diesen Fehler zu beheben, besteht darin, beim Zugriff auf NumPy-Array-Elemente einfach eckige Klammern [] statt runder Klammern () zu verwenden:

 #access the first element in the array
x[0]

2

Das erste Element des Arrays (2) wird angezeigt und wir erhalten keine Fehlermeldungen, da wir eckige Klammern [ ] verwendet haben.

Beachten Sie auch, dass wir auf mehrere Array-Elemente gleichzeitig zugreifen können, solange wir eckige Klammern [ ] verwenden:

 #find sum of first three elements in array
x[0] + x[1] + x[2]

10

Zusätzliche Ressourcen

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

So beheben Sie: ValueError: Der Index enthält doppelte Einträge und kann nicht umgestaltet werden
So beheben Sie: Typfehler: Erwarteter String oder Bytes-Objekt
So beheben Sie: TypeError: Das Objekt „numpy.float64“ kann nicht aufgerufen werden

Einen Kommentar hinzufügen

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