python数组的使用方法_使用Python记录数组的正确方法是什么

我想将几个列表或数组组合成一个记录数组。

“要在一个列b后面记录两个”数组。第一列将包含从“a”到“j”的字母,第二列将包含从0到9的数字In [22]: a = list('abcdefghij'); b = range(10); c = numpy.vstack((a, b)).T

In [23]: desc = {'names': ('a', 'b'), 'formats': ('S4', 'f4')}

In [24]: d = numpy.array(c, dtype=desc)

In [25]: d

Out[25]:

array([[('a', 0.0), ('0', 0.0)],

[('b', 0.0), ('1', 0.0)],

[('c', 0.0), ('2', 0.0)],

[('d', 0.0), ('3', 0.0)],

[('e', 0.0), ('4', 0.0)],

[('f', 0.0), ('5', 0.0)],

[('g', 0.0), ('6', 0.0)],

[('h', 0.0), ('7', 0.0)],

[('i', 0.0), ('8', 0.0)],

[('j', 0.0), ('9', 0.0)]],

dtype=[('a', '|S4'), ('b', '

In [26]: d['a']

Out[26]:

array([['a', '0'],

['b', '1'],

['c', '2'],

['d', '3'],

['e', '4'],

['f', '5'],

['g', '6'],

['h', '7'],

['i', '8'],

['j', '9']],

dtype='|S4')

In [27]: d['b']

Out[27]:

array([[ 0., 0.],

[ 0., 0.],

[ 0., 0.],

[ 0., 0.],

[ 0., 0.],

[ 0., 0.],

[ 0., 0.],

[ 0., 0.],

[ 0., 0.],

[ 0., 0.]], dtype=float32)

结果完全不是我所期望的。我想要的是:

^{pr2}$

编辑

我的目标是能够从已经存在的numpy.array中创建记录数组,而不仅仅是从单个列表中创建。在斯文·马纳赫的回答之后,我尝试了几次,也犯了一些错误,这就是我得到的:d = array(map(lambda l: tuple(l[0]), zip(c)), dtype=desc)

这似乎是一个相当丑陋的解决方案。有更好的吗?在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值