ホームページ >バックエンド開発 >Python チュートリアル >専用関数を使わずにPythonで移動平均を実装するにはどうすればよいですか?

専用関数を使わずにPythonで移動平均を実装するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-19 21:13:03717ブラウズ

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。