首頁 >後端開發 >Python教學 >如何在沒有專用函數的情況下在 Python 中實現移動平均線?

如何在沒有專用函數的情況下在 Python 中實現移動平均線?

Linda Hamilton
Linda Hamilton原創
2024-11-19 21:13:03687瀏覽

How to Implement Moving Averages in Python without a Dedicated Function?

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn