【问题标题】:Running Mean of Circular Data: Average and Standard Deviation?循环数据的运行平均值:平均偏差和标准偏差?
【发布时间】:2020-02-15 15:32:01
【问题描述】:

鉴于这样一个列表:

mylist = [1, 2, 3, 4, 5, 6, 7]

N = 3 作为每一步运行平均值的大小。

计算这个列表的平均值和标准差的最快方法是什么?

如果只有平均值 np.convolve 可以完成这项工作,那么标准差呢?还是标准错误?

【问题讨论】:

    标签: python mean moving-average


    【解决方案1】:

    试试:

    import numpy as np
    N=3
    mylist = [1, 2, 3, 4, 5, 6, 7]
    
    res=np.vstack([mylist[i:]+mylist[:i] for i in range(N)])
    
    ma=res.mean(axis=0)
    std=res.std(axis=0)
    

    只是移动平均线你可以这样做:https://*.com/a/14314054/11610186

    【讨论】:

    • 这对于非循环数据是正确的,那么循环数据呢?我还需要计算 [6,7,1] 和 [7,1,2] 的平均值
    【解决方案2】:
    import numpy as np
    
    mylist = [1, 2, 3, 4, 5, 6, 7]
    double = mylist * 2
    N = 3
    mean_std = [(np.mean(double[i:i+N]), np.std(double[i:i+N])) for i in range(len(mylist))]
    

    【讨论】:

    • 这对于非循环数据是正确的,因为它只给出 6 个值。它如何处理循环数据,即 7 个​​值?
    • 循环数据是什么意思?
    • mylist 是循环的,这意味着我还应该计算 [6,7,1]、[7,1,2] 的平均值,得到 7 个值的平均值
    • 我修改了解决方案,使其适用于您的情况