Jak naprawić: obiekt „numpy.float64” nie może być interpretowany jako int
Błąd, który możesz napotkać podczas korzystania z NumPy, to:
TypeError : 'numpy.float64' object cannot be interpreted as an integer
Ten błąd występuje, gdy podasz liczbę zmiennoprzecinkową do funkcji, która oczekuje liczby całkowitej.
Poniższy przykład pokazuje, jak w praktyce skorygować ten błąd.
Jak odtworzyć błąd
Załóżmy, że spróbujemy użyć poniższej pętli for do wydrukowania różnych liczb w tablicy NumPy:
import numpy as np #define array of values data = np. array ([3.3, 4.2, 5.1, 7.7, 10.8, 11.4]) #use for loop to print out range of values at each index for i in range(len(data)): print (range(data[i])) TypeError : 'numpy.float64' object cannot be interpreted as an integer
Otrzymujemy błąd, ponieważ funkcja range() oczekuje liczby całkowitej, ale wartości w tablicy NumPy są zmiennoprzecinkowe.
Jak naprawić błąd
Istnieją dwa sposoby szybkiego naprawienia tego błędu:
Metoda 1: Użyj funkcji int().
Jednym ze sposobów naprawienia tego błędu jest po prostu zawinięcie wywołania int() w następujący sposób:
import numpy as np #define array of values data = np. array ([3.3, 4.2, 5.1, 7.7, 10.8, 11.4]) #use for loop to print out range of values at each index 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)
Używając funkcji int() , konwertujemy każdą wartość zmiennoprzecinkową w tablicy NumPy na liczbę całkowitą, aby uniknąć napotkanego wcześniej błędu TypeError .
Metoda 2: Użyj funkcji .astype(int).
Innym sposobem naprawienia tego błędu jest najpierw konwersja wartości tablicy NumPy na liczby całkowite:
import numpy as np #define array of values data = np. array ([3.3, 4.2, 5.1, 7.7, 10.8, 11.4]) #convert array of floats to array of integers data_int = data. astype (int) #use for loop to print out range of values at each index 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)
Stosując tę metodę, ponownie unikamy błędu TypeError .
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