ホームページ >バックエンド開発 >Python チュートリアル >SciPy の「argrelextrema」関数を使用して、1D Numpy 配列の極大値と極小値を効果的に検出するにはどうすればよいでしょうか?
1D 数値配列での極大値と極小値の検索は、データ内の一般的なタスクです分析。単純化したアプローチには要素を隣接要素と比較することが含まれる可能性がありますが、一般的な科学計算ライブラリの一部として確立されたアルゴリズムを使用することをお勧めします。
そのようなライブラリの 1 つが SciPy です。これは、1D で局所的な極値を見つけるための argrelextrema 関数を提供します。配列。この関数は最大値と最小値の両方で機能するため、多用途のソリューションになります。使用方法は次のとおりです。
import numpy as np from scipy.signal import argrelextrema # Example 1D array x = np.random.random(12) # Detect local maxima maxima_indices = argrelextrema(x, np.greater) # Detect local minima minima_indices = argrelextrema(x, np.less)
argrelextrema 関数は、局所極値のインデックスを含む配列を含むタプルを返します。これらは入力配列内の単なるインデックスであり、実際の値ではないことに注意してください。対応する値を取得するには、次を使用します。
maxima_values = x[maxima_indices[0]] minima_values = x[minima_indices[0]]
便宜上、SciPy は最大値と最小値を個別に見つけるためのスタンドアロン関数 argrelmax および argrelmin も提供します。
以上がSciPy の「argrelextrema」関数を使用して、1D Numpy 配列の極大値と極小値を効果的に検出するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。