如何在Python 3中计算移动平均值?

如何在Python 3中计算移动平均值?,第1张

如何在Python 3中计算移动平均值

旧版本的Python文档中有一个很棒的滑动窗口生成器,并带有

itertools
示例:

from itertools import islicedef window(seq, n=2):    "Returns a sliding window (of width n) over data from the iterable"    "   s -> (s0,s1,...s[n-1]), (s1,s2,...,sn), ...        "    it = iter(seq)    result = tuple(islice(it, n))    if len(result) == n:        yield result        for elem in it:        result = result[1:] + (elem,)        yield result

使用您的移动平均线是微不足道的:

from __future__ import division  # For Python 2def moving_averages(values, size):    for selection in window(values, size):        yield sum(selection) / size

对您的输入运行(将字符串映射为整数)可以得到:

>>> y= ['1', '2', '3', '4','5','6','7','8','9','10']>>> for avg in moving_averages(map(int, y), 5):...     print(avg)... 3.04.05.06.07.08.0

要返回“不完整”集

None
的第
n - 1
一次迭代,只需将
moving_averages
函数扩展一点:

def moving_averages(values, size):    for _ in range(size - 1):        yield None    for selection in window(values, size):        yield sum(selection) / size


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5617024.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-15
下一篇2022-12-15

发表评论

登录后才能评论

评论列表(0条)

    保存