如何修复:“numpy.float64”对象不能解释为整数
在本文中,我们将看到如何解决:“numpy.float64”对象不能被解释为整数。
当函数或操作应用于错误类型的对象时,会引发类型错误。 'numpy.float64' 对象不能被解释为整数是这类问题的一个例子。让我们看看我们能做些什么。
我们什么时候得到''numpy.float64'对象不能被解释为整数'?
如果我们在Python的 range() 中给出一个浮点数,它会导致“numpy.float64”对象不能被解释为整数错误。
range()函数: range()函数返回一个从 0 开始并递增 1 的数字系列,然后在指定值处停止。
syntax: range(start,stop,step)
Python3
# code
import numpy as np
# an array of float values
arr = np.array([1.5, 2.5, 3.5])
# we loop to print out range of values
# at each index
for i in range(len(arr)):
print(range(arr[i]))
Python3
# code
import numpy as np
# an array of float values
arr = np.array([1.5, 2.5, 3.5])
arr = arr.astype(int)
# we loop to print out range of values
# at each index
for i in range(len(arr)):
print(range(arr[i]))
Python3
# code
import numpy as np
# an array of float values
arr = np.array([1.5, 2.5, 3.5])
# we loop to print out range of values
# at each index
for i in range(len(arr)):
print(range(int(arr[i])))
输出:
TypeError: ‘numpy.float64’ object cannot be interpreted as an integer
如何修复此错误?
当我们有一个值列表,并且我们想要更改它们的类型以防止错误时。
方法一:使用 astype()
我们可以使用 .astype()函数并给出参数“int”。 astype()函数:当我们需要将某个数据数组从一种类型转换为另一种类型时,该方法很有帮助。
Parameters
- dtype: refers to data type of list, or dict of column name
- copy: boolean value,in default it’s set to True
- errors: {‘raise’, ‘ignore’}, default is ‘raise’
Python3
# code
import numpy as np
# an array of float values
arr = np.array([1.5, 2.5, 3.5])
arr = arr.astype(int)
# we loop to print out range of values
# at each index
for i in range(len(arr)):
print(range(arr[i]))
输出:
range(0, 1)
range(0, 2)
range(0, 3)
方法二:使用 Int()函数
在这里,我们将 int()函数在进入范围之前强制转换数组对象。
Python3
# code
import numpy as np
# an array of float values
arr = np.array([1.5, 2.5, 3.5])
# we loop to print out range of values
# at each index
for i in range(len(arr)):
print(range(int(arr[i])))
输出:
range(0, 1)
range(0, 2)
range(0, 3)