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