'numpy.float64'对象不能解释为整数

时间:2018-06-25 16:05:49

标签: python numpy

这是有问题的代码:

arr = ['-0.944', '0.472', '0.472']
charges = [np.float64(i) for i in arr] # [-0.944, 0.472, 0.472]
charges = np.ndarray(charges)

在将列表强制转换为ndarray的最后一步会引发错误。在ndarray中分配dtype=np.float64不会更改错误。此代码段有什么问题?

Numpy 1.14, Python 3.6.1

1 个答案:

答案 0 :(得分:2)

np.ndarray的第一个参数是shape,通常是整数的元组。

您不应使用低级构造函数np.ndarray。正确的接口是np.array,可以直接从字符串中获取它,而无需先进行列表理解:

>>> arr = ['-0.944', '0.472', '0.472']
>>> np.array(arr, dtype=np.float64)
array([-0.944,  0.472,  0.472])