在NumPy 中實現一維數組的滾動視窗計算
滾動視窗計算涉及將函數迭代地應用於給定數組的子集。在這種情況下,問題的重點是尋找一種有效的方法來對 Python 庫 NumPy 中的一維 (1D) 數組執行滾動視窗計算。
要實現此目的,您可以利用部落格中的rolling_window 函數問題中引用的貼文。但是,此函數是為多維數組設計的,因此需要進行一些調整才能處理一維數組。
關鍵思想是將所需的函數應用於rolling_window函數的結果。例如,如果要計算滾動標準差,可以使用以下程式碼:
<code class="python">import numpy as np 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) observations = [1, 2, 3, 4, 5, 6, 7] n = 3 # window length rolling_std = np.std(rolling_window(observations, n), 1)</code>
在此範例中,rolling_window 函數在觀測值陣列上建立大小為 n 的滑動視窗。然後,np.std 函數計算每個視窗的標準差,並將結果儲存在 moving_std 陣列中。
這種方法利用 NumPy 的高效數組運算來無縫執行滾動視窗計算,而不需要明確的 Python 循環。
以上是如何在 NumPy 中有效地對一維數組進行滾動視窗計算?的詳細內容。更多資訊請關注PHP中文網其他相關文章!