如何修复:‘numpy.float64’ object cannot be interpreted as an integer
在这篇文章中,我们将看到如何解决:’numpy.float64’对象不能被解释为整数。
当一个函数或操作应用于一个错误类型的对象时,会产生一个类型错误。numpy.float64 “对象不能被解释为一个整数就是这种类型问题的一个例子。让我们来看看我们能做些什么。
我们什么时候会遇到‘numpy.float64’ object cannot be interpreted as an integer
如果我们在python的range()中给出一个浮点数,结果是 “numpy.float64’对象不能被解释为一个整数 “的错误。
range()函数:range()函数返回一个数字序列,从0开始,以1递增,然后停止在一个指定的值上。
语法: range(start,stop,step)
# 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]))
输出:
TypeError: ‘numpy.float64’ object cannot be interpreted as an integer
如何修复这个错误
当我们有一个值的列表,并且我们想改变它们的类型以防止错误。
方法1:使用 astype()
我们可以使用.astype()函数并给出参数 “int”。 astype()函数。当我们需要将某个数据数组从一种类型转换为另一种类型时,该方法就会有帮助。
参数
- dtype:指列表的数据类型,或列名的dict。
- copy: 布尔值,默认情况下,它被设置为True
- errors: {‘raise’,’ignore’},默认为’提高’。
# 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)
方法2:使用Int()函数
在这里我们用int()函数在进入数组范围之前对数组对象进行转换。
# 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)