”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何在没有循环的情况下有效计算 Numpy 中一维数组的滚动标准差?

如何在没有循环的情况下有效计算 Numpy 中一维数组的滚动标准差?

发布于2024-11-17
浏览:530

How can I efficiently calculate rolling standard deviation for a 1D array in Numpy without loops?

在 Numpy 中实现一维数组的高效滚动窗口

滚动窗口的概念涉及迭代数据序列并应用计算指定窗口长度内的数据子集。在给定的上下文中,任务是在不使用 Python 循环的情况下计算 Numpy 中一维数组的滚动标准差。

虽然可以使用 Numpy.std 轻松获得标准差,但滚动窗口部分构成了一个挑战。然而,通过利用博客文章中介绍的“rolling_window”函数,我们可以将其功能扩展到一维数组。

“rolling_window”函数创建输入数组的视图,重新排列成一系列重叠的窗口,促进这些窗口上的高效计算。通过将所需的函数(在本例中为 Numpy.std)应用于每个窗口,我们获得所需的滚动计算。

为了说明这一点,请考虑以下代码片段:

import numpy as np

# Create a 1D array
observations = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

# Specify window length
window_length = 3

# Calculate rolling windows
rolling_windows = rolling_window(observations, window_length)

# Calculate rolling standard deviations
rolling_stds = np.std(rolling_windows, axis=1)

# Print the results
print("Rolling standard deviations:", rolling_stds)

在此示例中,“rolling_windows”表示重叠窗口,“rolling_stds”捕获计算出的滚动标准差。通过使用 Numpy 函数进行这些计算,我们提高了效率并消除了计算中对 Python 循环的需要。

最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3