1
我知道这是一个非常经典的问题,但经过很多帖子后,我决定将它带回来,而无法找到一个看似基本的东西的优雅解决方案。 问题:从python计数器字典到nd numpy数组
我有一个大的数据集的计数器字典,有意义的整数键和整数事件:
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)]
结束了这是否只是一种D型的问题吗?非常感谢!
是的!我迷失在这些类型和迭代器中,忘记了基本知识。所以np.array(list())组合避免了我们指定dtypes。现在我徘徊为什么'np.fromiter'如此刻薄,但我想我只是错过了一些东西。谢谢@kennytm。 – Etienne
如果我没有错,一个简单的'co.items()'应该足以代替'list(co.items())'。 – JRodDynamite
@JRodDynamite'np.array(co.items())'创建一个对象数组而不是2D数组。 'array(dict_items([(8046,1360),(10046,1248),(11046,1024)]),dtype = object)' – kennytm