【发布时间】:2021-08-04 03:08:10
【问题描述】:
我对 numpy 完全陌生,正在尝试创建结构化数组。我的输入如下:
data = [2, 0, '1431.033', '436.7573', '170.9705', 0, '', 0]
dt = [('ID', 'int'),
('CP', 'int'),
('X1', 'float'),
('X2', 'float'),
('X3', 'float'),
('CD', 'int'),
('PS', 'str'),
('SEID', 'int')]
当我尝试使用 np.array(data, dtypes=dt) 创建数组时,我收到错误 {ValueError}invalid literal for int() with base 10: '1431.033'。
我在这里做错了什么?
【问题讨论】:
-
恐怕numpy数组一般不能包含不同的数据类型。
-
@NiveshGadipudi,结构化数组的示例显示了这一点。 numpy.org/doc/stable/user/basics.rec.html#structured-arrays
-
data必须是元组或元组列表。你的是一个列表。 -
来自您的文档页面:numpy.org/doc/stable/user/…
-
@josiaLund 来自您发布的链接中的示例,它是一个元组数组,正如其他 stackoverflow 用户所述,这是可能的,但您使用的方式不是。