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')
ここで:
説明
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 サイトの他の関連記事を参照してください。