python - Numpy 二维移动平均线

标签 python numpy moving-average

我有一个二维 numpy 数组。我想对每个条目取最近的 n 个条目的平均值,就像对一维数组取滑动平均值一样。最干净的方法是什么?

最佳答案

这与将滤镜应用于图像的概念类似。

幸运的是,scipy.ndimage.filters有一堆功能可以做到这一点。你要找的是 scipy.ndimage.uniform_filter .

可以这样使用:

a
=> 
array([[  0.,   1.,   2.,   3.,   4.],
       [  5.,   6.,   7.,   8.,   9.],
       [ 10.,  11.,  12.,  13.,  14.],
       [ 15.,  16.,  17.,  18.,  19.],
       [ 20.,  21.,  22.,  23.,  24.]])

uniform_filter(a, size=3, mode='constant')
=> 
array([[  1.33333333,   2.33333333,   3.        ,   3.66666667,          2.66666667],
       [  3.66666667,   6.        ,   7.        ,   8.        ,          5.66666667],
       [  7.        ,  11.        ,  12.        ,  13.        ,          9.        ],
       [ 10.33333333,  16.        ,  17.        ,  18.        ,         12.33333333],
       [  8.        ,  12.33333333,  13.        ,  13.66666667,          9.33333333]])

如果您想要 5x5 过滤器,请使用 size=5mode 选项控制边缘的处理方式。您没有指定要如何处理边缘。在此示例中,“常量”模式意味着它将数组边界外的每个项目视为常量值 0(0 是默认值,可以被覆盖)。

关于python - Numpy 二维移动平均线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23000260/

相关文章:

python - python 中的最大主动回撤

python - 使用 loc 替换/选择列中的值。 Pandas

python - 安全配置解析器 : sections and environment variables

python - python中的条件编译

python - 在 numpy 和 python 中快速删除重复项

algorithm - 这是一个准确的平均数还是指数移动平均数公式?

python - 在一个文件中划分两列并将新列中的输出打印到多个文件的同一文件

Python 3.x 读取带标题的文件(已识别标题之间的数据)

database - PostgreSQL 时态数据库中的移动平均值

python - 计算移动平均线