首頁 >後端開發 >Python教學 >為什麼 NumPy 沒有內建移動平均函數?

為什麼 NumPy 沒有內建移動平均函數?

Linda Hamilton
Linda Hamilton原創
2024-11-26 14:29:13856瀏覽

Why Doesn't NumPy Have a Built-in Moving Average Function?

使用Python 和NumPy 簡化移動平均計算

計算資料序列的移動平均值或滾動平均值對於平滑雜訊和平滑雜訊至關重要。識別趨勢。雖然 NumPy/SciPy 缺乏專用的移動平均函數,但手動實現它卻非常簡單。

使用NumPy 最簡單的實作

使用NumPy 的cumsum 函數,一個簡單的非加權函數移動平均可以高效實現:

def moving_average(a, n=3):
    ret = np.cumsum(a, dtype=float)
    ret[n:] = ret[n:] - ret[:-n]
    return ret[n - 1:] / n

這個實作提供了一種快速且準確的方法來計算任何所需視窗大小的移動平均值。

包含在電池中與實施

缺乏內建移動平均函數考慮到 NumPy/SciPy 的普遍存在,它可能看起來很奇怪。然而,這有幾個潛在的原因:
  • 實作簡單:如上所述,移動平均線可以使用標準 NumPy 函數輕鬆實現。
  • 計算效率: cumsum 方法通常比更複雜的 FFT 為基礎的方法更快。
  • 潛在的膨脹:包括每個函數的專門函數可以想像的資料分析任務可能會導致 NumPy/SciPy 函式庫膨脹。

以上是為什麼 NumPy 沒有內建移動平均函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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