Ein Fehler, auf den Sie bei der Verwendung von NumPy stoßen können, ist:

TypeError: 'numpy.float64' object cannot be interpreted as an integer

Dieser Fehler tritt auf, wenn Sie einer Funktion, die eine ganze Zahl erwartet, einen Gleitkommawert übergeben.

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

So reproduzieren Sie den Fehler

Angenommen, wir versuchen, die folgende for-Schleife zu verwenden, um verschiedene Zahlen in einem NumPy-Array auszugeben:

import numpy as np

#Array von Werten definieren
data = np.array([3.3, 4.2, 5.1, 7.7, 10.8, 11.4])

#Verwenden Sie die for-Schleife, um den Wertebereich bei jedem Index auszugeben
for i in range(len(data)):
    print(range(data[i]))

TypeError: 'numpy.float64' object cannot be interpreted as an integer

Wir erhalten einen Fehler, weil die range()-Funktion eine ganze Zahl erwartet, aber die Werte im NumPy-Array Floats sind.

So beheben Sie den Fehler

Es gibt zwei Möglichkeiten, diesen Fehler schnell zu beheben:

Methode 1: Verwenden Sie die int()-Funktion

Eine Möglichkeit, diesen Fehler zu beheben, besteht darin, den Aufruf einfach wie folgt mit int() zu umschließen:

import numpy as np

#Array von Werten definieren
data = np.array([3.3, 4.2, 5.1, 7.7, 10.8, 11.4])

#Verwenden Sie die for-Schleife, um den Wertebereich bei jedem Index auszugeben
for i in range(len(data)):
    print(range(int(data[i])))

range(0, 3)
range(0, 4)
range(0, 5)
range(0, 7)
range(0, 10)
range(0, 11)

Durch die Verwendung der int()-Funktion konvertieren wir jeden Float-Wert im NumPy-Array in eine ganze Zahl, um den TypeError zu vermeiden, auf den wir zuvor gestoßen sind.

Methode 2: Verwenden Sie die .astype(int)-Funktion

Eine andere Möglichkeit, diesen Fehler zu beheben, besteht darin, zuerst die Werte im NumPy-Array in Ganzzahlen zu konvertieren:

import numpy as np

#Array von Werten definieren
data = np.array([3.3, 4.2, 5.1, 7.7, 10.8, 11.4])

# Konvertieren Sie ein Array von Gleitkommazahlen in ein Array von Ganzzahlen
data_int = data.astype(int)

#Verwenden Sie die for-Schleife, um den Wertebereich bei jedem Index auszugeben
for i in range(len(data)):
    print(range(data[i]))

range(0, 3)
range(0, 4)
range(0, 5)
range(0, 7)
range(0, 10)
range(0, 11)

Mit dieser Methode vermeiden wir erneut den TypeError.

Zusätzliche Ressourcen

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

So beheben Sie KeyError in Pandas
Behebung: ValueError: Float NaN kann nicht in Integer konvertiert werden
Behebung: ValueError: Operanden konnten nicht zusammen mit Shapes gesendet werden

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: