ホームページ > バックエンド開発 > Python チュートリアル > NumPy または SciPy を使用して Python で移動平均を効率的に計算するにはどうすればよいですか?

NumPy または SciPy を使用して Python で移動平均を効率的に計算するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-30 07:05:12
オリジナル
804 人が閲覧しました

How to Efficiently Calculate a Running Mean in Python using NumPy or SciPy?

NumPy または SciPy を使用した移動平均の計算

データ分析を実行する場合、1D 配列の移動平均 (移動平均とも呼ばれます) を計算するのが一般的な操作です。 Python の SciPy および NumPy ライブラリは、この目的のためにいくつかの関数を提供します。

NumPy ソリューション

NumPy の np.convolve 関数は、実行平均の計算に利用できます。入力配列に対して畳み込み演算を計算します。ここで、カーネルは目的のウィンドウ サイズを表す一様分布です。

np.convolve(x, np.ones(N)/N, mode='valid')
ログイン後にコピー

ここで:

  • x は入力 1D 配列
  • N はウィンドウ サイズです
  • mode='valid' はエッジを期待どおりに処理します(出力の長さは入力の長さからウィンドウ サイズを引いたものと等しい)

計算の理解

移動平均は本質的に畳み込み演算であり、ウィンドウ係数はすべて 1/N に設定されます。したがって、NumPy の畳み込み関数を使用すると、計算効率が高くなります。

エッジ処理モード

np.convolve は、

  • フル の 3 つのエッジ処理モードを提供します。 : をパディングして入力配列を拡張します。 zeros
  • same: 入力と同じ長さの配列を両端にゼロパディングして出力します
  • valid: エッジを無視して配列を出力します長さ (len(input) - window_size 1)

のモード通常、移動平均計算の直観的な動作と一致するため、デフォルトで有効に設定されていますが、特定の要件に応じて他のモードを使用することもできます。

以上がNumPy または SciPy を使用して Python で移動平均を効率的に計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート