Heim >Backend-Entwicklung >Python-Tutorial >Wie finde ich lokale Maxima und Minima in 1D-Numpy-Arrays?

Wie finde ich lokale Maxima und Minima in 1D-Numpy-Arrays?

DDD
DDDOriginal
2024-11-19 21:56:02983Durchsuche

How to Find Local Maxima and Minima in 1D Numpy Arrays?

Lokale Maxima und Minima in 1D-Arrays mit Numpy finden

Das Identifizieren lokaler Maxima und Minima in 1D-Numpy-Arrays ist eine häufige Aufgabe in verschiedenen Anwendungen . Während die Überprüfung benachbarter Elemente ein intuitiver Ansatz ist, bietet Numpy eine umfassendere und zuverlässigere Lösung.

Numpys Argrelextrema-Funktion

In SciPy 0.11 und höher kann die Argrelextrema-Funktion effizient arbeiten Finden Sie sowohl lokale Maxima als auch Minima in einem 1D-Numpy-Array. Es werden zwei Argumente benötigt:

  1. Array: Das Eingabe-Numpy-Array.
  2. Komparator: Eine Vergleichsfunktion (z. B. np.greater oder np.less), die die Kriterien zur Identifizierung von Extrema angibt .

Verwendung:

Um lokale Maxima zu finden, verwenden Sie:

argrelextrema(x, np.greater)

Um lokale Minima zu finden, verwenden Sie:

argrelextrema(x, np.less)

Ausgabe

Die argrelextrema-Funktion gibt ein Tupel zurück, das ein eindimensionales Array von Indizes enthält, die den Extrema entsprechen. Diese Indizes können verwendet werden, um auf die Werte der lokalen Maxima oder Minima zuzugreifen.

Beispiel:

Betrachten Sie das folgende Numpy-Array:

x = np.random.random(12)

Ermitteln der Indizes lokaler Maxima und Minima:

max_indices = argrelextrema(x, np.greater)[0]
min_indices = argrelextrema(x, np.less)[0]

Abrufen der tatsächlichen Werte:

max_values = x[max_indices]
min_values = x[min_indices]

Mit der Argrelextrema-Funktion von Numpy können Sie lokale Maxima und Minima in 1D-Numpy genau identifizieren Arrays, was diese häufige Aufgabe vereinfacht.

Das obige ist der detaillierte Inhalt vonWie finde ich lokale Maxima und Minima in 1D-Numpy-Arrays?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn