如何将Python dictionary对象转换为numpy数组

2024-05-16 06:35:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有python dict对象,key为datetime.date对象,value为tuple对象:

>>> data_dict
{datetime.date(2006, 1, 1): (5, 3),
 datetime.date(2006, 1, 2): (8, 8),
 datetime.date(2006, 1, 3): (8, 5),
 datetime.date(2006, 1, 4): (3, 3),
 datetime.date(2006, 1, 5): (3, 3),
 datetime.date(2006, 1, 6): (4, 3),
...

我想把它转换成以下格式的numpy数组对象:

dtype([('date', '|O4'), ('high', '<i1'), ('low', '<i1')])

这样我就可以把它存储在磁盘上,然后用它来学习,在numpy中,matplotlib。。。

事实上,在看了这个matplotlib示例之后,我想使用这种格式:http://matplotlib.sourceforge.net/users/recipes.html,但是找不到如何实现它的方法。


Tags: 对象keynumpydatadatetimedatematplotlibvalue
1条回答
网友
1楼 · 发布于 2024-05-16 06:35:38

以下操作:

arr = np.array([(k,)+v for k,v in data_dict.iteritems()], \
         dtype=[('date', '|O4'), ('high', '<f8'), ('low', '<f8')])

如果您希望使用arr作为^{},则可以使用:

arr = arr.view(np.recarray)

这将使您能够按名称引用字段,例如arr.date

相关问题 更多 >