python - 跨字典添加 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 表单集合,但它似乎只适用于标量值。我试图用两个循环来做,但很困惑。我可能可以用三个循环来做到这一点,但还有另一种更优雅的方式吗?
谢谢
解决方案
尝试:
{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])}