2013-11-15 72 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}