假设我有几本字典(每小时一本),它们都有相同的键:
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|更广泛地说,它是一种形式:

在β是1的地方,pst是我们字典的键,我们也会在几个小时内加起来。
发布于 2022-01-13 09:45:08
使用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()发布于 2022-01-13 09:44:48
为此,可能最好使用pandas而不是numpy。
很肯定会是
beta = 1
pd.DataFrame([h1, h2, h3]).diff().dropna().abs().mul(beta).sum().sum()
Out: 61.0https://stackoverflow.com/questions/70694243
复制相似问题