gpt4 book ai didi

python - 使用字符串和整数从 Numpy 中的列表创建结构体数组

转载 作者:行者123 更新时间:2023-11-30 23:18:42 29 4
gpt4 key购买 nike

我已通读文档,但无法弄清楚如何使用 numpy 创建字符串和整数的结构化数组。我的问题的简短版本如下:

foo = [['asd', 1, 2],['bgf',2,3]]
bar = np.array(foo, dtype=['S10', 'i4','i4'])

然后我希望将 bar[:,0] 作为字符串数组以及 bar[:,1]bar[:,2 ] 作为整数数组。

不幸的是,这会给出一个TypeError:数据类型无法理解。我尝试了许多其他方法来让它工作,但找不到任何直观的东西。

目前,我只是在执行 bar = np.array(foo) ,然后每当我调用第二列或第三列中的值时都会转换为整数,这远非理想。

如何从列表 foo 列表中创建我想要的结构体数组 bar

最佳答案

这是创建 structured array 的一种方法:

>>> foo = [('asd', 1, 2),('bgf',2,3)]
>>> bar = np.array(foo, dtype='S10,i4,i4')
>>> bar
array([('asd', 1, 2), ('bgf', 2, 3)],
dtype=[('f0', 'S10'), ('f1', '<i4'), ('f2', '<i4')])
>>> bar['f0']
array(['asd', 'bgf'],
dtype='|S10')
>>> bar['f1']
array([1, 2], dtype=int32)
>>> bar['f2']
array([2, 3], dtype=int32)

如果您想要一个包含元素而不是字段的普通数组,请使用dtype=object

关于python - 使用字符串和整数从 Numpy 中的列表创建结构体数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26548135/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com