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

Linda Hamilton
Freigeben: 2024-11-15 09:26:03
Original
117 Leute haben es durchsucht

How to Find Local Maxima and Minima in a 1D Numpy Array Using SciPy?

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)
Nach dem Login kopieren

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]),)
Nach dem Login kopieren

Um die tatsächlichen Werte an diesen lokalen Extrema zu erhalten:

>>> x[argrelextrema(x, np.greater)[0]]
Nach dem Login kopieren

Zusätzliche Funktionen in SciPy

Zusätzlich zu Argrelextrema bietet SciPy spezielle Funktionen nur zum Finden Maxima oder Minima:

  • argrelmax: Findet Indizes lokaler Maxima
  • argrelmin: Findet Indizes lokaler 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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage