首页 > 解决方案 > Python最有效的重新排列字典的numpy数组的方法

问题描述

以下代码创建此格式的字典

{'a': array([1, 2...1000]), 'b': array([1, 2...1000])....

old_dict = dict(a=np.array([]),
           b=np.array([]),
           c=np.array([]),
           new_dict=np.array([]),
           e=np.array([]),
           f=np.array([]),
           g=np.array([]),
           h=np.array([]))

for x in range(10000):
    old_dict['a'] = np.append(old_dict['a'], x)
    old_dict['b'] = np.append(old_dict['b'], x)
    old_dict['c'] = np.append(old_dict['c'], x)
    old_dict['d'] = np.append(old_dict['d'], x)
    old_dict['e'] = np.append(old_dict['e'], x)
    old_dict['f'] = np.append(old_dict['f'], x)
    old_dict['g'] = np.append(old_dict['g'], x)
    old_dict['h'] = np.append(old_dict['h'], x)

我想把这个字典转换成一个看起来像这样的字典列表

[{'a': 1, 'b': 1....}, {'a': 2, 'b': 2....},.....]

我想出了这段代码

new_list_dict = []
for i, (key, val) in enumerate(old_dict.items()):
   _d = {}
   for k, v in old_dict.items():
      _d[k] = v[i]
   new_list_dict.append(_d)

但是你能建议最快的(矢量化的?)方法吗?

标签: pythonnumpydictionary

解决方案


推荐阅读