我有一个大的 numpy 数组,每一行都包含一个单词字典,格式类似于下面:
data = [{'a': 1, 'c': 2}, {'ba': 3, 'a': 4}, ... }
有人可以为我指出正确的方向,我将如何计算 numpy 数组每一行中字典的所有唯一值的总和?从上面的例子中,我希望得到这样的东西:
result = {'a': 5, 'c': 2, 'ba': 3, ...}
目前,我能想到的唯一方法是遍历每一行数据,然后遍历字典的每个键,如果找到唯一键,则将其附加到新字典并设置值,如果找到字典中已包含的键,则将该键的值添加到“结果”中的键。虽然这似乎是一种低效的方法。
请您参考如下方法:
您可以使用 Counter() 并在循环中用 data 中包含的每个字典更新它:
from collections import Counter
data = [{'a': 1, 'c': 2}, {'ba': 3, 'a': 4}]
c = Counter()
for d in data:
c.update(d)
输出:
Counter({'a': 5, 'ba': 3, 'c': 2})
备用一个类轮:
(由@AntonVBR 在评论中提出)
sum((Counter(dict(x)) for x in data), Counter())
