栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在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


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/610900.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号