如何修复:只有大小为 1 的数组可以转换为 python 标量


使用Python时可能会遇到的错误是:

 TypeError : only size-1 arrays can be converted to Python scalars

当尝试使用np.int()将浮点值的 NumPy 数组转换为整数值数组时,最常发生此错误。

但是,此函数仅接受单个值而不是值数组。

相反,您应该使用x.astype(int)将浮点值的 NumPy 数组转换为整数值数组,因为该函数能够接受数组。

以下示例展示了如何在实践中纠正此错误。

如何重现错误

假设我们创建以下浮点值的 NumPy 数组:

 import numpy as np

#create NumPy array of float values
x = np. array ([3, 4.5, 6, 7.7, 9.2, 10, 12, 14.1, 15])

现在假设我们尝试将这个浮点值数组转换为整数值数组:

 #attempt to convert array to integer values
n.p. int (x)

TypeError : only size-1 arrays can be converted to Python scalars 

我们收到TypeError 是因为np.int()函数只接受单个值,而不接受值数组。

如何修复错误

为了将浮点值的 NumPy 数组转换为整数值,我们可以使用以下代码:

 #convert array of float values to integer values
x. astype (int)

array([ 3, 4, 6, 7, 9, 10, 12, 14, 15])

请注意,值数组已转换为整数,并且我们没有收到任何错误,因为astype()函数能够处理值数组。

注意:您可以在此处找到astype()函数的完整文档。

其他资源

以下教程解释了如何修复 Python 中的其他常见错误:

如何修复 Pandas 中的 KeyError
如何修复:ValueError:无法将 float NaN 转换为 int
如何修复:ValueError:操作数无法与形状一起广播

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注