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

问题描述 投票:2回答:1

这是有问题的代码:

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

python numpy
1个回答
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])
© www.soinside.com 2019 - 2024. All rights reserved.