使用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中文網其他相關文章!