Come risolvere: l'oggetto 'numpy.float64' non è iterabile


Un errore che potresti riscontrare durante l’utilizzo di NumPy è:

 TypeError : 'numpy.float64' object is not iterable

Questo errore si verifica quando si tenta di eseguire in modo iterativo un’operazione iterativa su un valore float in NumPy, il che non è possibile.

L’esempio seguente mostra come risolvere questo errore nella pratica.

Come riprodurre l’errore

Supponiamo di avere il seguente array 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]

Supponiamo ora di provare a stampare la somma di ciascun valore nell’array:

 #attempt to print the sum of every value
for i in data:
    print (sum(i))

TypeError : 'numpy.float64' object is not iterable

Abbiamo ricevuto un errore perché abbiamo tentato di eseguire iterativamente (prendere la somma dei valori) su ogni singolo valore float nell’array.

Come correggere l’errore

Possiamo evitare questo errore in due modi:

1. Eseguire un’operazione non iterativa su ciascun valore nell’array.

Ad esempio, potremmo stampare ogni valore nell’array:

 #print every value in array
for i in data:
    print (i)

1.3
1.5
1.6
1.9
2.2
2.5

Non riceviamo un errore perché non abbiamo tentato di eseguire l’iterazione su ciascun valore.

2. Eseguire un’operazione iterativa su un array multidimensionale.

Potremmo anche evitare un errore eseguendo un’operazione iterativa su un array multidimensionale:

 #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

Non riceviamo un errore perché aveva senso utilizzare la funzione sum() su un array multidimensionale.

In particolare, ecco come NumPy ha calcolato i valori della somma:

  • 1,3 + 1,5 = 2,8
  • 1,6 + 1,9 = 3,5
  • 2,2 + 2,5 = 4,7

Risorse addizionali

I seguenti tutorial spiegano come correggere altri errori comuni in Python:

Come correggere l’errore chiave nei Panda
Come risolvere il problema: ValueError: impossibile convertire float NaN in int
Come risolvere il problema: ValueError: non è stato possibile trasmettere gli operandi con le forme

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *