Lokale Maxima/Minima in einem 1D-Numpy-Array mit Numpy finden
Das Identifizieren lokaler Maxima und Minima in einem 1D-Numpy-Array ist eine häufige Aufgabe in der Signalverarbeitung und Datenanalyse. Während ein einfacher Ansatz darin besteht, ein Element mit seinen nächsten Nachbarn zu vergleichen, wird innerhalb der Numpy/Scipy-Bibliotheken nach einer robusteren Lösung gesucht.
Lösung mit SciPys Argrelextrema
In SciPy Ab Version 0.11 bietet die argrelextrema-Funktion eine effiziente Möglichkeit, lokale Extrema in einem 1D-Array zu finden:
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)
Die Funktion gibt Tupel zurück, die Indizes von Elementen enthalten, die lokale Maxima oder Minima sind:
>>> argrelextrema(x, np.greater) (array([1, 5, 7]),) >>> argrelextrema(x, np.less) (array([4, 6, 8]),)
Um die tatsächlichen Werte an diesen lokalen Extrema zu erhalten:
>>> x[argrelextrema(x, np.greater)[0]]
Zusätzliche Funktionen in SciPy
Zusätzlich zu Argrelextrema bietet SciPy spezielle Funktionen nur zum Finden Maxima oder Minima:
Das obige ist der detaillierte Inhalt vonWie finde ich mit SciPy lokale Maxima und Minima in einem 1D-Numpy-Array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!