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

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

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-13 17:18:02689Durchsuche

How to Find Local Maxima and Minima in a 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:

  • argrelmax: Lokalisiert lokale Maxima
  • argrelmin: Lokalisiert Minima

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:

  • Maxima: [1, 5, 7]
  • Minima: [4, 6, 8]

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!

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