Numpy を使用して 1D Numpy 配列内の極大値/極小値を見つける
1D Numpy 配列内の極大値と極小値を特定するのは一般的なタスクです信号処理とデータ分析。シンプルなアプローチには要素を最近傍要素と比較することが含まれますが、より堅牢な解決策は numpy/scipy ライブラリ内で模索されます。バージョン 0.11 以降では、argrelextrema 関数は、1D 配列で局所極値を見つける効率的な方法を提供します:
この関数は、極大値または極小値である要素のインデックスを含むタプルを返します:
これらの局所極値での実際の値を取得するには:
import numpy as np from scipy.signal import argrelextrema x = np.random.random(12) # Find indices of local maxima maxima_indices = argrelextrema(x, np.greater) # Find indices of local minima minima_indices = argrelextrema(x, np.less)SciPy の追加関数
>>> argrelextrema(x, np.greater) (array([1, 5, 7]),) >>> argrelextrema(x, np.less) (array([4, 6, 8]),)argrelextrema に加えて、SciPy は検索のみに特化した関数を提供します。最大値または最小値:
>>> x[argrelextrema(x, np.greater)[0]]
argrelmax: 極大値のインデックスを検索します
argrelmin: 極小値のインデックスを検索します以上がSciPyを使用して1D Numpy配列で極大値と極小値を見つける方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。