如何修复:“numpy.float64”对象不支持元素分配
使用 Python 时可能遇到的一个常见错误是:
TypeError: 'numpy.float64' object does not support item assignment
当您尝试使用方括号将新值分配给类型为float64的 NumPy 变量时,通常会发生此错误。
以下示例展示了如何在实践中解决此错误。
如何重现错误
假设我们创建一个值为15.22的 NumPy 变量,并尝试使用括号为其赋予新值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
我们收到对象“numpy.float64”不支持元素分配的错误。
我们收到此错误是因为one_float是标量,但我们尝试将其视为数组,可以使用方括号来修改索引位置 0 处的值。
由于one_float不是数组,因此在尝试修改其值时不能使用方括号。
如何修复错误
解决此错误的方法是在为浮点数分配新值时不使用方括号:
#modify float value to be 13.7
one_float = 13.7
#view float
print (one_float)
13.7
我们成功地将值从15.22更改为13.7 ,因为我们没有使用括号。
请注意,只要您使用的是数组,就可以使用方括号来修改特定索引位置的值。
例如,以下代码显示如何使用括号表示法将 NumPy 数组的第一个元素从15.22更改为13.7 :
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]
这次我们也没有收到错误,因为我们正在使用 NumPy 数组,因此使用括号是有意义的。
其他资源
以下教程解释了如何修复 Python 中的其他常见错误:
如何在 Python 中修复:对象“numpy.ndarray”不可调用
如何修复:类型错误:对象“numpy.float64”不可调用
如何修复:类型错误:预期字符串或字节对象