从python Counter字典到nd numpy数组

时间:2016-05-17 08:57:35

标签: python arrays numpy dictionary

我知道这是一个非常经典的问题,但经过很多帖子后,我决定把它带回来,却找不到一个看似基本的优雅解决方案。    问题:

我有一个来自大型数据集的Counter字典,带有意义的整数键和整数出现次数:

co = Counter({8046: 1360, 10046: 1248, 11046: 1024})

只是想要以一个基本的整数数组结束:

a = np.array([[8046,1360],[10046,1248],[11046,1024]])

这个问题的特殊性(或缺乏特异性)是我有整数键,我不需要结构化数组。以下

dtype = dict(names = ['id','data'], formats=['i8','i8'])
array = np.fromiter(iter(co.items()), dtype=dtype)

不太令人满意,最后以

结束
a = [(8046, 1360) (10046, 1248) (11046, 1024)]

这只是dtype的问题吗?非常感谢!

1 个答案:

答案 0 :(得分:3)

您可以在转换为numpy数组之前将其转换为列表:

>>> np.array(list(co.items()))
array([[ 8046,  1360],
       [10046,  1248],
       [11046,  1024]])