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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *