这是有问题的代码:
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
答案 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])