【问题标题】:How to convert Python dictionary object to numpy array如何将 Python 字典对象转换为 numpy 数组
【发布时间】:2011-09-19 13:39:44
【问题描述】:

我有 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),
...

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

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

这样我就可以将它存储在磁盘上,然后再使用它,并在 numpy 中学习 matplotlib...

事实上,在查看了这个 matplotlib 示例后,我想使用这种格式:http://matplotlib.sourceforge.net/users/recipes.html 但找不到我的出路。

【问题讨论】:

    标签: python numpy


    【解决方案1】:

    下面会做:

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

    如果您希望使用arr 作为recarray,您可以使用:

    arr = arr.view(np.recarray)
    

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

    【讨论】:

    • 小注:dict 似乎需要 sorted(data_dict.iteritems())
    猜你喜欢
    • 2021-05-15
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 2018-05-28
    • 2019-05-29
    • 1970-01-01
    • 2012-07-03
    • 1970-01-01
    相关资源
    最近更新 更多