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

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *