首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从字典中得到随时间变化的和域和不同的名称

如何从字典中得到随时间变化的和域和不同的名称
EN

Stack Overflow用户
提问于 2022-01-13 09:33:39
回答 2查看 36关注 0票数 3

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

代码语言:javascript
复制
h1={'a':1, 'b':3, 'c':10}
h2={'a':7, 'b':15, 'c':2}
h3={'a':9, 'b':15, 'c':35}

如何获得所有小时和键的下一个小时之间的绝对值之和,即表单的和:

代码语言:javascript
复制
|1-7|+|7-9|+|3-15|+|15-15|+|10-2|+|2-35|

更广泛地说,它是一种形式:

在β是1的地方,pst是我们字典的键,我们也会在几个小时内加起来。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-13 09:45:08

使用numpy,您可以创建一个数组,计算绝对差(numpy.diff+abs)和sum

代码语言:javascript
复制
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

有测试版:

代码语言:javascript
复制
beta = 1
abs(np.diff(a, axis=0)*beta).sum()
票数 2
EN

Stack Overflow用户

发布于 2022-01-13 09:44:48

为此,可能最好使用pandas而不是numpy

很肯定会是

代码语言:javascript
复制
beta = 1
pd.DataFrame([h1, h2, h3]).diff().dropna().abs().mul(beta).sum().sum()
Out: 61.0
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70694243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档