Python 中元组的循环移动平均线
Circular moving average on a tuple in Python
给定一个元组 v = (1,2,3,4,)
我如何将其转换为滚动平均值的元组,考虑循环端点计算,即输出是
((4+1+2)/3, (1+2+3)/3, (2+3+4)/3, (3+4+1)/3,)
当然,矢量和 window 大小可以改变。在上面的示例中,带宽为 1(window 大小 3)。
只需将额外的元素粘贴到列表的末尾即可:
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]
给定一个元组 v = (1,2,3,4,)
我如何将其转换为滚动平均值的元组,考虑循环端点计算,即输出是
((4+1+2)/3, (1+2+3)/3, (2+3+4)/3, (3+4+1)/3,)
当然,矢量和 window 大小可以改变。在上面的示例中,带宽为 1(window 大小 3)。
只需将额外的元素粘贴到列表的末尾即可:
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]