在numpy中总结字典元素

时间:2017-03-07 01:12:27

标签: python numpy dictionary

我的字典看起来像这样:

{'A': ([  0.        ,  1.0 ,  2.0,   3.0,          0.        ,   0.        ,   0.        ,   0.        ,   0.        ]),
 'B': ([  0.        ,  4.0,  5.0 ,   6.0,          0.        ,   0.        ,   0.        ,   0.        ,   0.        ]),

.
.
.

'Y': ([  0.        ,  7.0,  8.0 ,   9.0,          0.        ,   0.        ,   0.        ,   0.        ,   0.        ]),
'Z': ([  0.        ,  10.0,  20.0,   30.0,          0.        ,   0.        ,   0.        ,   0.        ,   0.        ])}

我想总结第2,第3和第4个元素并制作一个如下所示的新词典:

{'A': ([6.0]),
 'B': ([15.0]),

.
.
.

'Y': ([24.0]),
'Z': ([60.0])}

这样做的pythonic方法是什么?我使用的是Python 2.7。感谢

1 个答案:

答案 0 :(得分:5)

使用字典理解来遍历dict项并将值加起来:

{k: v[1:4].sum() for k, v in d.items()}
# {'A': 6.0, 'B': 15.0, 'Y': 24.0, 'Z': 60.0}

如果您想将结果保留为列表:

{k: v[1:4].sum(keepdims=True).tolist() for k, v in d.items()}

# {'A': [6.0], 'B': [15.0], 'Y': [24.0], 'Z': [60.0]}