如何随着时间的推移和字典中的不同名称获得总和

How to get sum over time horizont and different names from dictionaries

假设我有几本字典(每小时一本),它们都有相同的键:

h1={'a':1, 'b':3, 'c':10}
h2={'a':7, 'b':15, 'c':2}
h3={'a':9, 'b':15, 'c':35}

如何获得所有时间和键的下一个小时之间的绝对值总和,即以下形式的总和:

|1-7|+|7-9|+|3-15|+|15-15|+|10-2|+|2-35|

更普遍的形式是:

其中 beta 为 1,psts 是我们字典的键,我们也会计算数小时的总和。

为此使用 pandas 可能比 numpy 更好。
很确定它只是

beta = 1
pd.DataFrame([h1, h2, h3]).diff().dropna().abs().mul(beta).sum().sum()
Out: 61.0

使用 numpy,您可以制作一个数组,计算绝对差 (numpy.diff+abs),以及 sum:

h1={'a':1, 'b':3, 'c':10}
h2={'a':7, 'b':15, 'c':2}
h3={'a':9, 'b':15, 'c':35}

import numpy as np
dicts = [h1, h2, h3]

a = np.array([list(d.values()) for d in dicts])
abs(np.diff(a, axis=0)).sum()

输出:61

测试版:

beta = 1
abs(np.diff(a, axis=0)*beta).sum()