首页  >  文章  >  后端开发  >  如何在没有循环的情况下有效计算 Numpy 中一维数组的滚动标准差?

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

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-30 22:09:30162浏览

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)应用于每个窗口,我们获得所需的滚动计算。

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

<code class="python">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)</code>

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

以上是如何在没有循环的情况下有效计算 Numpy 中一维数组的滚动标准差?的详细内容。更多信息请关注PHP中文网其他相关文章!

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