Heim >Backend-Entwicklung >Python-Tutorial >Wie finde ich lokale Maxima und Minima in einem 1D-Numpy-Array?
Verwendung des SciPy-Moduls von Numpy zum Auffinden lokaler Maxima und Minima in einem 1D-Numpy-Array
Suche nach einer Numpy- oder SciPy-Modulfunktion, die lokale Maxima und Minima identifizieren kann Maxima und Minima innerhalb eines 1D-Numpy-Arrays können wir eine bewährte Lösung untersuchen, die innerhalb des Numpy verwendet wird Verteilung.
Lösung mit den Extrema-Erkennungsfunktionen von SciPy
Für Fälle, in denen Ihre SciPy-Installation Version 0.11 oder höher ist, können Sie die Argrelextrema-Funktion nutzen:
import numpy as np from scipy.signal import argrelextrema x = np.random.random(12) # Detect local maxima maxima_indices = argrelextrema(x, np.greater) # Detect local minima minima_indices = argrelextrema(x, np.less)
Dieses Skript generiert Arrays, die die Indizes lokaler Maxima oder Minima enthalten. Um die entsprechenden Werte abzurufen, verwenden Sie:
maxima_values = x[maxima_indices[0]] minima_values = x[minima_indices[0]]
Alternative Optionen von SciPy.Signal
SciPy.signal bietet auch spezielle Funktionen für die Handhabung der Max- und Min-Erkennung:
Verwenden Sie diese Methoden zur spezifischen Extraktion von Maxima oder Minima.
Beispielausgabe
Für das Beispielarray [0.56660112, 0.76309473, 0,69597908, 0,38260156, 0,24346445, 0,56021785, 0,24109326, 0,41884061, 0,35461957, 0,54398472, 0,59572658, 0,92377974], die Ausgabeindizes lokaler Maxima und Minima sind:
Das obige ist der detaillierte Inhalt vonWie finde ich lokale Maxima und Minima in einem 1D-Numpy-Array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!