如何随着时间的推移和字典中的不同名称获得总和
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()
假设我有几本字典(每小时一本),它们都有相同的键:
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()