我有python dict对象,键为datetime.date对象,值为元组对象:
>>> 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),
...
Run Code Online (Sandbox Code Playgroud)
我想以这种格式将其转换为numpy数组对象:
dtype([('date', '|O4'), ('high', '<i1'), ('low', '<i1')])
Run Code Online (Sandbox Code Playgroud)
这样我就可以将它存储在磁盘上,然后再使用它,并在numpy中学习matplotlib ......
事实上,在查看这个matplotlib示例之后我想使用这种格式:http://matplotlib.sourceforge.net/users/recipes.html但是找不到如何到达那里的方法.
以下将这样做:
arr = np.array([(k,)+v for k,v in data_dict.iteritems()], \
dtype=[('date', '|O4'), ('high', '<f8'), ('low', '<f8')])
Run Code Online (Sandbox Code Playgroud)
如果您希望arr用作a recarray,则可以使用:
arr = arr.view(np.recarray)
Run Code Online (Sandbox Code Playgroud)
这将使您能够按名称引用字段,例如arr.date.