ホームページ > バックエンド開発 > Python チュートリアル > NumPy の `np.convolve` 関数を使用して 1D 配列の移動平均を計算するにはどうすればよいですか?

NumPy の `np.convolve` 関数を使用して 1D 配列の移動平均を計算するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-01 06:50:10
オリジナル
181 人が閲覧しました

How to Calculate a Running Mean of a 1D Array Using NumPy's `np.convolve` Function?

SciPy または NumPy を使用して 1D 配列の移動平均を計算する方法

移動平均とも呼ばれる移動平均は、指定されたウィンドウがデータ上をスライドするときに、そのウィンドウ内のデータ ポイントのサブセットの平均を計算する統計的尺度。 Python では、SciPy 関数と NumPy 関数を使用して移動平均を計算する方法がいくつかあります。

SciPy 関数

SciPy には移動平均を計算するための専用関数がありません。 。ただし、NumPy の np.convolve 関数を使用して移動平均の計算を実装できます。

NumPy 関数

NumPy の np.convolve 関数は畳み込み演算を実行します。移動平均のコンテキストにおける畳み込みは、カーネルをデータに適用し、結果を合計するプロセスです。移動平均を計算する場合、カーネルは一様分布であり、ウィンドウ内の各データ ポイントに等しい重みを与えます。

移動平均に np.convolve を使用するには、次のコードを使用できます。

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

ここで:

  • array は、実行中の計算を行う 1D 配列です。 means.
  • window_size は、平均が計算されるウィンドウのサイズです。
  • mode='valid' は、配列の端が無視されることを指定し、出力配列は次のようになります。入力配列よりも window_size だけ短い - 1.

説明

np.ones(window_size) / window_size は、均一な重みを持つカーネルを作成します。 np.convolve はこのカーネルを配列に適用し、各ウィンドウの平均値の配列を生成します。 mode='valid' 引数により、配列のエッジが計算に含まれないことが保証され、データ全体の移動平均を反映する出力配列が生成されます。

エッジ処理

np.convolve の mode 引数は、配列のエッジを処理する方法を指定します。モードが異なると、エッジの動作も異なります。以下の表に、一般的に使用されるモードを示します。

Mode Edge Handling
full Pads the array with zeros and returns an output array that is the same size as the input array.
same Pads the array with zeros to match the kernel size and returns an output array that is the same size as the input array.
valid Ignores the edges of the array, resulting in an output array that is shorter than the input array.

モードの選択は、特定の要件と、配列の端での移動平均に必要な解釈によって異なります。

以上がNumPy の `np.convolve` 関数を使用して 1D 配列の移動平均を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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