使用Python 實現移動平均
儘管NumPy 或SciPy 中沒有計算移動平均值的專用函數,但有一個簡單且使用np .cumsum 函式來實現它的有效方法。這種方法對於非加權移動平均值特別有效。
def moving_average(a, n=3): ret = np.cumsum(a, dtype=float) ret[n:] = ret[n:] - ret[:-n] return ret[n - 1:] / n
此程式碼採用陣列 a 和視窗大小 n 來計算移動平均值。它使用 np.cumsum 計算數組的累積和,然後減去前 n 個元素的總和以調整移動視窗。然後將結果數組除以 n 以獲得平均值。
例如,以下程式碼計算數組的移動平均值:
a = np.arange(20) moving_average(a) # array([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., # 12., 13., 14., 15., 16., 17., 18.])
值得注意的是,實現移動平均值在NumPy 中相對簡單,並且在庫中包含此類功能可能沒有必要,因為它可能會導致膨脹並減少庫對其核心功能的關注。
以上是如何在沒有專用函數的情況下在 Python 中實現移動平均線?的詳細內容。更多資訊請關注PHP中文網其他相關文章!