はじめに
データ分析や信号処理において、データの極大値(ピーク)や極小値(谷)を検出することは非常に重要です。SciPyのsignal モジュールに含まれるargrelmax関数とargrelmin関数を使うと、簡単にこれらの極値を検出できます。
コード

解説
モジュールのインポート
バージョン
データの生成
データを図で表示

極小値、極大値の検出
SciPyのargrelmaxとargrelminは、それぞれデータの局所的な最大値と最小値の位置(インデックス)を返す関数です。
極小値、極大値の表示

極小値と極大値を図示すると上図のようになります。
ノイズが多いデータの場合

デフォルト設定のままで極小値と極大値を取得すると、以下のように多数の値が検出されます。

このような場合、order値を調整することで極値検出の精度を効果的に向上させることができます。orderは極値を検出する際の「窓の大きさ」を指定するパラメータです。

参考
argrelmin — SciPy v1.16.1 Manual
argrelmax — SciPy v1.16.1 Manual
コメント