ホームページ >バックエンド開発 >Python チュートリアル >SciPy または NumPy を使用して Python で移動平均を計算する方法?
Python での移動平均の計算
Python では、SciPy を使用して特定のウィンドウの 1D 配列の移動平均を計算できます。または NumPy 関数。
の使用SciPy
SciPy が利用可能な場合は、scipy.signal.convolve 関数を使用できます。
from scipy.signal import convolve running_mean = convolve(array, np.ones(window) / window, mode='valid')
これは、一般に効率的であるため、必要に応じて推奨される方法です。明確に定義された動作、特にそれが非常に一般的であるためです。
使用NumPy
NumPy しかない場合は、その np.convolve 関数を使用できます。
running_mean = np.convolve(array, np.ones(window) / window, mode='valid')
np.convolve について
ここでの中心となる演算は畳み込みです。畳み込みは通常、2 つの信号の部分の積に対する単一の数学的合計として表現されます。この場合の解釈は、平均の式で使用される重みに等しい係数 (1/ウィンドウ、1/ウィンドウ、...、1/ウィンドウ) をウィンドウ部分に乗算し、合計しているということです。
エッジの処理
np.convolve の mode 引数は、エッジの処理方法を制御します。エッジ。 'valid' は、すべてのウィンドウが配列内に完全に収まる部分のみを含めることによってすべてのエッジ効果を削除します。'same' はエッジにゼロを追加して出力配列を入力配列と同じ長にし、'full' はゼロパディングを追加します。出力配列をウィンドウの長さと入力の長さの合計から 1 を引いた長さにするためです。モードの選択は、特定の要件によって異なります。
以上がSciPy または NumPy を使用して Python で移動平均を計算する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。