将numpy记录数组转换为字典列表的有效方法 [英] Efficient way to convert numpy record array to a list of dictionary

查看:357
本文介绍了将numpy记录数组转换为字典列表的有效方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何转换下面的numpy记录数组:

How do I convert the numpy record array below:

recs = [('Bill', 31, 260.0), ('Fred', 15, 145.0)]
r = rec.fromrecords(recs, names='name, age, weight', formats='S30, i2, f4')

到字典列表,如:

[{'name': 'Bill', 'age': 31, 'weight': 260.0}, 
'name': 'Fred', 'age': 15, 'weight': 145.0}]

推荐答案

已通过

Answered at Numpy-discussion by Robert Kern


该讨论的结论电子邮件副本:


Copy of concluding email from that discussion:

如何转换下面的numpy记录数组: recs = [('Bill',31,260.0),('Fred',15,145.0)] r = rec.fromrecords(记录,名称='名称,年龄,体重',格式='S30,i2,f4') 到像这样的字典列表: [{'name':'Bill','age':31,'weight':260.0}, 'name':'Fred','age':15,'weight':145.0}]

How do I convert the numpy record array below: recs = [('Bill', 31, 260.0), ('Fred', 15, 145.0)] r = rec.fromrecords(recs, names='name, age, weight', formats='S30, i2, f4') to a list of dictionary like: [{'name': 'Bill', 'age': 31, 'weight': 260.0}, 'name': 'Fred', 'age': 15, 'weight': 145.0}]

假设您的记录数组仅为一维:

Assuming that your record array is only 1D:

输入[6]:r.dtype.names输出[6] :(名称",年龄",体重")

In [6]: r.dtype.names Out[6]: ('name', 'age', 'weight')

在[7]中:名称= r.dtype.names

In [7]: names = r.dtype.names

在[8]中:[在r中记录的字典(dict(zip(名称,记录)))]在[8]中:[{'age': 31,'name':'Bill','weight':260.0},{'age':15,'name':'Fred', 'weight':145.0}]

In [8]: [dict(zip(names, record)) for record in r] Out[8]: [{'age': 31, 'name': 'Bill', 'weight': 260.0}, {'age': 15, 'name': 'Fred', 'weight': 145.0}]

这篇关于将numpy记录数组转换为字典列表的有效方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆