Heim >Backend-Entwicklung >Python-Tutorial >Wie finde ich signifikante Peaks in Python mithilfe der find_peaks-Funktion von SciPy?
Spitzen in Python/SciPy finden
Spitzen in Daten zu finden ist eine häufige Aufgabe in verschiedenen Bereichen, einschließlich Signalverarbeitung, Bildanalyse usw Datenanalyse. Python bietet mehrere Pakete und Funktionen zur Peak-Erkennung, einschließlich der Funktion scipy.signal.find_peaks von SciPy.
SciPys Peak-Finding-Algorithmus
Die Funktion find_peaks verwendet ein 1D-Array als Eingabe und gibt die Indizes der Peaks zurück. Es verwendet einen Peak-Finding-Algorithmus, der Peaks anhand mehrerer Parameter erkennt:
Prominenz zur Rauschunterdrückung
Der Prominenzparameter ist besonders nützlich, um signifikante Peaks von rauschinduzierten Peaks zu unterscheiden . Unter Prominenz versteht man die minimale Abstiegshöhe, um vom Gipfel in höher gelegenes Gelände zu gelangen. Durch Festlegen eines hohen Hervorhebungsschwellenwerts kann der Algorithmus kleinere, durch Rauschen verursachte Spitzen effektiv herausfiltern.
Beispielverwendung
Der folgende Code demonstriert die Spitzensuche in einer verrauschten Frequenz -Variierende Sinuskurve mit der Funktion „find_peaks“:
<code class="python">import numpy as np import matplotlib.pyplot as plt from scipy.signal import find_peaks x = np.sin(2*np.pi*(2**np.linspace(2,10,1000))*np.arange(1000)/48000) + np.random.normal(0, 1, 1000) * 0.15 peaks_prominence, _ = find_peaks(x, prominence=1) plt.plot(x) plt.plot(peaks_prominence, x[peaks_prominence], "ob") plt.legend(['Signal', 'Peaks (prominence)']) plt.show()</code>
Wie im Diagramm gezeigt, findet die Funktion „find_peaks“ Spitzen mit hoher Amplitude und Prominenz und filtert rauschbedingte Spitzen effektiv heraus.
Andere Peak-Finding-Optionen
Zusätzlich zu find_peaks bietet SciPy auch andere Peak-Finding-Funktionen, wie z. B. Peak_widths und argrelmax. Diese Funktionen eignen sich möglicherweise besser für bestimmte Anwendungen oder Anpassungen.
Fazit
SciPys Funktion scipy.signal.find_peaks bietet eine robuste und vielseitige Lösung für die Peaksuche in Python . Seine einstellbaren Parameter, einschließlich der Prominenz, ermöglichen eine individuelle Anpassung, um signifikante Spitzen in verschiedenen Datentypen zu erkennen.
Das obige ist der detaillierte Inhalt vonWie finde ich signifikante Peaks in Python mithilfe der find_peaks-Funktion von SciPy?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!