首页 > 解决方案 > 跨字典添加 Numpy 数组

问题描述

我有一个具有相同键的字典列表,其中每个字典的值都是相同大小的 NumPy 数组。

这是示例

a = {"a": np.array([1,2]),"b": np.array([2,4]),}
b = {"a": np.array([5,7]),"b": np.array([12,34]),}
c = [a,b]

我想对所有字典中相同键的值(Numpy 数组)求和。

我已经尝试过 Counter 表单集合,但它似乎只适用于标量值。我试图用两个循环来做,但很困惑。我可能可以用三个循环来做到这一点,但还有另一种更优雅的方式吗?

谢谢

标签: pythonnumpydictionary

解决方案


尝试:

{k:a[k]+b[k] for k in a.keys()}

或者一般来说reduce

from functools import reduce
reduce(lambda x,y: {k:x[k]+y[k] for k in x.keys()}, c)

输出:

{'a': array([6, 9]), 'b': array([14, 38])}

推荐阅读