Como corrigir: o objeto 'numpy.float64' não suporta atribuição de elemento
Um erro comum que você pode encontrar ao usar Python é:
TypeError: 'numpy.float64' object does not support item assignment
Este erro geralmente ocorre quando você tenta usar colchetes para atribuir um novo valor a uma variável NumPy que possui o tipo float64 .
O exemplo a seguir mostra como resolver esse erro na prática.
Como reproduzir o erro
Digamos que criamos uma variável NumPy com um valor de 15,22 e tentamos usar parênteses para atribuir a ela um novo valor de 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
Recebemos o erro de que o objeto ‘numpy.float64’ não suporta atribuição de elemento .
Recebemos este erro porque one_float é um escalar, mas tentamos tratá-lo como um array onde poderíamos usar colchetes para modificar o valor na posição 0 do índice.
Como one_float não é um array, não podemos usar colchetes ao tentar modificar seu valor.
Como corrigir o erro
A maneira de resolver esse erro é simplesmente não usar colchetes ao atribuir um novo valor ao float:
#modify float value to be 13.7
one_float = 13.7
#view float
print (one_float)
13.7
Conseguimos alterar o valor de 15,22 para 13,7 porque não usamos parênteses.
Observe que é possível usar colchetes para modificar valores em posições específicas do índice, desde que você esteja trabalhando com um array.
Por exemplo, o código a seguir mostra como alterar o primeiro elemento de uma matriz NumPy de 15,22 para 13,7 usando notação de colchetes:
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]
Desta vez também não recebemos erro porque estamos trabalhando com um array NumPy, então faz sentido usar parênteses.
Recursos adicionais
Os tutoriais a seguir explicam como corrigir outros erros comuns em Python:
Como corrigir em Python: o objeto ‘numpy.ndarray’ não pode ser chamado
Como corrigir: TypeError: o objeto ‘numpy.float64’ não pode ser chamado
Como corrigir: erro de tipo: objeto de string ou bytes esperado