はじめに
データ配列内のピークの検出は、さまざまな分野で重要なタスクです。信号処理、画像分析、最適化などの科学および工学アプリケーション。この記事では、データ配列内のピークを効率的に見つけるために、SciPy ライブラリの機能を活用して、Python で一般的に使用されるピーク検出アルゴリズムについて説明します。
SciPy の find_peaks 関数
SciPy の信号モジュールの find_peaks 関数は、1 次元データ内のピークを識別するための包括的なソリューションを提供します。複数のパラメータを組み込んでピーク検出基準をカスタマイズし、その有効性を高めます。
プロミネンス: ピーク識別の鍵
利用可能なパラメータの中で、プロミネンスが最も際立っています。真のピークとノイズの多い変動を区別するのに影響します。これは、ピークとその隣接する地形の間の最小標高差を定義し、顕著な隆起性を持つピークのみが検出されるようにします。
その他の便利なパラメータ
隆起性に加えて、他のパラメータによりピーク検出精度を向上させることができます:
実装例
以下に示すように、ノイズを含む周波数が変化する正弦波を考えます。
[ノイズを含む周波数が変化する正弦波のイメージ]
プロミネンスを使用してこの信号のピークを検出するには、関数 find_peaks を使用します。次のように使用できます:
<code class="python">import numpy as np from scipy.signal import find_peaks x = np.sin(2*np.pi*(2**np.linspace(2,10,1000))*np.arange(1000)/48000) + np.random.normal(0, 1, 1000) * 0.15 peaks, _ = find_peaks(x, prominence=1)</code>
他のパラメータのテスト
比較のために、他のパラメータもテストできます:
[画像距離、幅、およびしきい値を使用して検出されたピークを表示]
結論
SciPy の find_peaks 関数は、Python でのピーク検出のための強力でカスタマイズ可能なソリューションを提供します。パラメータ、特にプロミネンスを慎重に調整することで、ユーザーはさまざまなデータタイプで正確かつ堅牢なピーク識別を実現できます。
以上がPython で Find_Peaks アルゴリズムを使用してデータ配列内のピークを正確に特定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。