Jak naprawić: obiektu „numpy.float64” nie można iterować
Błąd, który możesz napotkać podczas korzystania z NumPy, to:
TypeError : 'numpy.float64' object is not iterable
Ten błąd występuje, gdy próbujesz iteracyjnie wykonać operację iteracyjną na wartości zmiennoprzecinkowej w NumPy, co nie jest możliwe.
Poniższy przykład pokazuje, jak w praktyce rozwiązać ten błąd.
Jak odtworzyć błąd
Załóżmy, że mamy następującą tablicę NumPy:
import numpy as np #define array of data data = np. array ([1.3, 1.5, 1.6, 1.9, 2.2, 2.5]) #display array of data print (data) [1.3 1.5 1.6 1.9 2.2 2.5]
Załóżmy teraz, że próbujemy wydrukować sumę każdej wartości w tablicy:
#attempt to print the sum of every value
for i in data:
print (sum(i))
TypeError : 'numpy.float64' object is not iterable
Otrzymaliśmy błąd, ponieważ próbowaliśmy iteracyjnie (pobrać sumę wartości) dla każdej indywidualnej wartości zmiennoprzecinkowej w tablicy.
Jak naprawić błąd
Możemy uniknąć tego błędu na dwa sposoby:
1. Wykonaj operację nieiteracyjną na każdej wartości w tablicy.
Na przykład moglibyśmy wydrukować każdą wartość w tablicy:
#print every value in array
for i in data:
print (i)
1.3
1.5
1.6
1.9
2.2
2.5
Nie otrzymujemy błędu, ponieważ nie próbowaliśmy wykonać iteracji dla każdej wartości.
2. Wykonaj operację iteracyjną na tablicy wielowymiarowej.
Moglibyśmy również uniknąć błędu, wykonując operację iteracyjną na tablicy wielowymiarowej:
#create multi-dimensional array
data2 = np. array ([[1.3, 1.5], [1.6, 1.9], [2.2, 2.5]])
#print sum of each element in array
for i in data2:
print (sum(i))
2.8
3.5
4.7
Nie pojawia się błąd, ponieważ użycie funkcji sum() w tablicy wielowymiarowej miało sens.
W szczególności oto sposób, w jaki NumPy obliczył wartości sumy:
- 1,3 + 1,5 = 2,8
- 1,6 + 1,9 = 3,5
- 2,2 + 2,5 = 4,7
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