はじめに
scipy.signal.argrelmin, argrelmaxでデータの極小値、極大値を検出する方法について説明する。
コード
![](https://sabopy.com/wp/wp-content/uploads/2021/05/arg_rel_minmax2.jpg)
解説
モジュールのインポート
バージョン
データの生成
データを図で表示
![](https://sabopy.com/wp/wp-content/uploads/2021/05/arg_rel_minmax1.png)
極小値、極大値の検出
argrelmin(y),argrelmax(y)でそれぞれ極小値、極大値を検出できる。インデックスが取得できる。
極小値、極大値の表示
![](https://sabopy.com/wp/wp-content/uploads/2021/05/arg_rel_minmax2.jpg)
極小値、極大値をまるで示すと上図のようになる。
ノイズが多いデータの場合
![](https://sabopy.com/wp/wp-content/uploads/2021/05/arg_rel_minmax3.png)
ここでデフォルト設定のまま極小値、極大値を取得すると以下のように多くの値が検出される。
![](https://sabopy.com/wp/wp-content/uploads/2021/05/arg_rel_minmax4.jpg)
このような場合、orderを変化させることでうまいこといく。
![](https://sabopy.com/wp/wp-content/uploads/2021/05/arg_rel_minmax5.jpg)
参考
argrelmin — SciPy v1.14.0 Manual
argrelmax — SciPy v1.14.0 Manual
コメント