首页  >  文章  >  后端开发  >  如何使用 Numpy 计算一维数组上的滚动窗口标准差?

如何使用 Numpy 计算一维数组上的滚动窗口标准差?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-28 03:23:30278浏览

How to Calculate Rolling Window Standard Deviations on 1D Arrays Using Numpy?

使用 Numpy 计算一维数组上的滚动窗口标准差

在 numpy 中,经常会出现需要计算滚动窗口函数的操作一维数组上。一种简单的方法是使用循环,如给定的 Python 代码片段所示。不过,通过 Numpy 的增强功能可以找到更高效的方法。

在 Numpy 中执行滚动窗口操作的关键在于利用博文中介绍的rolling_window 函数。该函数将输入数组重塑为一系列重叠的窗口,从而有效地创建一个二维数组。将函数应用于此二维数组可以进行基于窗口的计算。

要计算滚动标准差,只需将 numpy.std 函数应用于rolling_window 函数的输出即可。以下修改后的代码片段演示了这种方法:

import numpy as np

# Define the rolling window function
def rolling_window(a, window):
    shape = a.shape[:-1] + (a.shape[-1] - window + 1, window)
    strides = a.strides + (a.strides[-1],)
    return np.lib.stride_tricks.as_strided(a, shape=shape, strides=strides)

# Input array
observations = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# Calculate rolling standard deviations
stdev = np.std(rolling_window(observations, 3), 1)

# Print the results
print(stdev)

此代码片段使用纯 Numpy 运算有效计算给定一维数组的滚动标准差,无需循环。

以上是如何使用 Numpy 计算一维数组上的滚动窗口标准差?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn