Come risolvere: l'oggetto 'numpy.float64' non supporta l'assegnazione degli elementi


Un errore comune che potresti riscontrare quando usi Python è:

 TypeError: 'numpy.float64' object does not support item assignment

Questo errore in genere si verifica quando si tenta di utilizzare le parentesi quadre per assegnare un nuovo valore a una variabile NumPy di tipo float64 .

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

Come riprodurre l’errore

Diciamo di creare una variabile NumPy con un valore di 15.22 e proviamo a usare le parentesi per darle un nuovo valore di 13.7 :

 import numpy as np

#define some float value
one_float = np. float64 (15.22)

#attempt to modify float value to be 13.7
one_float[0] = 13.7

TypeError: 'numpy.float64' object does not support item assignment

Riceviamo l’errore che l’oggetto ‘numpy.float64’ non supporta l’assegnazione degli elementi .

Abbiamo ricevuto questo errore perché one_float è uno scalare ma abbiamo provato a trattarlo come un array in cui potremmo utilizzare parentesi quadre per modificare il valore nella posizione dell’indice 0.

Poiché one_float non è un array, non possiamo usare le parentesi quadre quando proviamo a modificarne il valore.

Come correggere l’errore

Il modo per risolvere questo errore è semplicemente non utilizzare le parentesi quadre quando si assegna un nuovo valore al float:

 #modify float value to be 13.7
one_float = 13.7

#view float
print (one_float)

13.7

Siamo riusciti a modificare il valore da 15.22 a 13.7 perché non abbiamo utilizzato le parentesi.

Tieni presente che è possibile utilizzare parentesi quadre per modificare valori in posizioni di indice specifiche purché lavori con un array.

Ad esempio, il codice seguente mostra come modificare il primo elemento di un array NumPy da 15,22 a 13,7 utilizzando la notazione tra parentesi:

 import numpy as np

#define a NumPy array of floats
many_floats = np. float64 ([15.22, 34.2, 15.4, 13.2, 33.4])

#modify float value in first index position of array to be 13.7
many_floats[0] = 13.7

#view updated array
print (many_floats)

[13.7 34.2 15.4 13.2 33.4]

Anche questa volta non riceviamo un errore perché stiamo lavorando con un array NumPy, quindi ha senso usare le parentesi.

Risorse addizionali

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

Come risolvere il problema in Python: l’oggetto ‘numpy.ndarray’ non è richiamabile
Come risolvere il problema: TypeError: l’oggetto “numpy.float64” non è richiamabile
Come risolvere il problema: Errore di tipo: oggetto stringa o byte previsto

Aggiungi un commento

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