首頁  >  文章  >  後端開發  >  如何使用 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