2013-11-15 74 views
7

我有一个numpy数组,我想从数组中创建一个字典。从numpy数组创建字典

更具体地说我想有对应于行键的字典,所以关键1应该是行的总和1.

S1是我的数组,我知道如何获得该行的总和,但做numpy.sum(s1[i]),其中我是行。

我想创建一个循环,我可以计算行的总和,然后将其添加到字典,但我是编程新手,所以我不知道如何做到这一点,或者如果有可能。

有没有人有任何建议?

EDIT

我与范围函数创建的密钥值。 然后压缩键和数组。

mydict = dict(zip(keys, s1)) 

回答

8

我会在精神上做一些类似于dict(zip(keys, s1))的事情,只做两点小改动。

首先,我们可以使用enumerate,第二,我们可以拨打sum方法ndarray s。例如:

>>> arr = np.arange(9).reshape(3,3) 
>>> arr 
array([[0, 1, 2], 
     [3, 4, 5], 
     [6, 7, 8]]) 
>>> arr.sum(axis=1) 
array([ 3, 12, 21]) 
>>> dict(enumerate(arr.sum(axis=1))) 
{0: 3, 1: 12, 2: 21}