如何根据时间戳值计算子列表的平均值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何根据时间戳值计算子列表的平均值?相关的知识,希望对你有一定的参考价值。

我有两个列表。第1个列表是测量数据的时间戳(秒)。第2个列表包含数据。

我想计算每10秒数据的平均值。请注意,两个连续数据点之间的时间戳不是固定的。

例子:我想计算每10秒数据的平均值。

Timestamp = [2, 5, 8, 11, 18, 23, 25, 28]
Data = [1, 2, 3, 4, 5, 6, 7, 8]

预期的输出应该是:

Output = [average of [1,2,3] , average of [4,5] , average of [6,7,8]]

我想知道在Python中是否有任何内置的函数 类似于average -if分析来自动完成它。

谢谢你的帮助。

答案

你可以使用数学函数 floordefaultdict 作为

from collections import defaultdict
from math import floor

timestamp = [2, 5, 8, 11, 18, 23, 25, 28]
data = [1, 2, 3, 4, 5, 6, 7, 8]
average_dc= defaultdict(list)
for t, d in sorted(zip(timestamp, data), key=lambda x : x[0]):
     average_dc[math.floor(t / 10)].append(d)
averages = [sum(i)/ len(i) for i in average_dc.values()]

产量

[2.0, 4.5, 7.0]

sorted(zip(timestamp, data), key=lambda x : x[0]) 会合 timestamp 的值与来自 data 然后,for循环将插入到同一个索引上的 average_dc 有关 data 价值基础上的相关 timestamp 值。在最后一行中,列表理解将在 average_dc 并将计算其平均值。

以上是关于如何根据时间戳值计算子列表的平均值?的主要内容,如果未能解决你的问题,请参考以下文章

Pandas:如何添加两个时间戳值?

如何在 cur.execute 中使用 python 返回有效的时间戳值

如何使用本机反应将时间戳值转换为特定时间格式?

如何使用 clojure.java.jdbc 插入包含时间戳值的行?

在 PySpark 中,如何将时间戳值四舍五入到最接近的分钟?

以秒为单位的转换时间戳值不会反转为 python 中的原始时间戳