Python中元组的循环移动平均值

时间:2015-11-14 05:02:09

标签: python python-3.x tuples average moving-average

给定元组v = (1,2,3,4,)如何将其转换为滚动平均值元组,考虑循环端点计算,即输出

((4+1+2)/3, (1+2+3)/3, (2+3+4)/3, (3+4+1)/3,)

当然,矢量和窗口大小可以改变。在上面的示例中,带宽为1(窗口大小为3)。

1 个答案:

答案 0 :(得分:4)

将额外的元素粘贴到列表的末尾:

def movingAverages(seq, k):
    circle = seq + seq[:k]
    for j in range(len(seq)):
        yield sum(circle[j:j+k])/k

例如:

list(movingAverages([1,2,3,4,5],2))
[1.5, 2.5, 3.5, 4.5, 3.0]