如何修复:‘numpy.float64’ object cannot be interpreted as an integer

如何修复:‘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)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Numpy教程