nak*_*akb 2 python dictionary list astropy
我有一个 astropy.table.table 对象保存星星数据。每颗恒星一行,列包含恒星名称、最大星等数据。
我理解天文表的内部表示是每列的字典,行作为字典对象的切片即时返回。
我需要将 astropy 表转换为 dict 对象的 Python 列表,每个星一个 dict。本质上,这既是表格的转置,也是转换。
显然,我可以按行内的列迭代表,以构建字典并将它们添加到列表中,但我希望有一种更有效的方法?
这是一个想法。我不确定你是否可以提高效率,除非表很大,最好首先使用以下方法转换为纯 Numpy 数组.as_array():
In [1]: from astropy.table.table_helpers import simple_table
In [2]: t = simple_table()
In [3]: t
Out[3]:
<Table length=3>
a b c
int64 float64 str1
----- ------- ----
1 1.0 c
2 2.0 d
3 3.0 e
In [4]: names = t.colnames
In [5]: [dict(zip(names, row)) for row in t]
Out[5]:
[{'a': 1, 'b': 1.0, 'c': 'c'},
{'a': 2, 'b': 2.0, 'c': 'd'},
{'a': 3, 'b': 3.0, 'c': 'e'}]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1397 次 |
| 最近记录: |