Spitzenwerte finden in Python

Shivam Arora 30 Januar 2023
  1. Verwendung von die Funktion scipy.signal.find_peaks() zum Erkennen von Spitzenwerten in Python
  2. Verwendung von die Funktion scipy.signal.argrelextrema() zur Erkennung von Spitzenwerten in Python
  3. Verwendung von die Funktion detecta.detect_peaks() zur Erkennung von Peaks in Python zu erkennen
Spitzenwerte finden in Python

Ein Spitzenwert ist ein Wert, der höher ist als die meisten lokalen Werte. Es kann einen einzelnen globalen maximalen oder mehrere Spitzenwerte geben. Spitzenwerte in den Diagrammen sollten sichtbar und definiert sein und nicht im Datenrauschen verborgen sein.

In diesem Artikel finden wir die Spitzen verschiedener Wertesätze in Python.

Verwendung von die Funktion scipy.signal.find_peaks() zum Erkennen von Spitzenwerten in Python

Das scipy.signal.find_peaks() kann die Spitzen der gegebenen Daten erkennen. Mit dieser Funktion sind nur wenige Parameter verbunden: width, threshold, distance und prominence. Es gibt die Indizes des Wertes zurück, bei dem der Peak gefunden wird.

Zum Beispiel,

from scipy.signal import find_peaks

lst = [
    5,
    3,
    2,
    19,
    17,
    8,
    13,
    5,
    0,
    6,
    1,
    -5,
    -10,
    -3,
    6,
    9,
    8,
    14,
    8,
    11,
    3,
    2,
    22,
    8,
    2,
    1,
]
peaks, _ = find_peaks(lst, height=0)
print(peaks)

Ausgabe:

[ 3  6  9 15 17 19 22]

Verwendung von die Funktion scipy.signal.argrelextrema() zur Erkennung von Spitzenwerten in Python

Diese Funktion ähnelt der Funktion find_peaks(). Außerdem enthält es einen order-Parameter. Dieser Parameter ist ein Distanzparameter, der als Minimierungsfilter dient. Wir müssen das Argument comparator als Methode np.greater bereitstellen, um die Indizes der Peaks zu berechnen.

Zum Beispiel,

import numpy as np
from scipy.signal import argrelextrema

lst = [
    5,
    3,
    2,
    19,
    17,
    8,
    13,
    5,
    0,
    6,
    1,
    -5,
    -10,
    -3,
    6,
    9,
    8,
    14,
    8,
    11,
    3,
    2,
    22,
    8,
    2,
    1,
]
peaks = argrelextrema(np.array(lst), np.greater)
print(peaks)

Ausgabe:

(array([ 3,  6,  9, 15, 17, 19, 22], dtype=int64),)

Verwendung von die Funktion detecta.detect_peaks() zur Erkennung von Peaks in Python zu erkennen

In der Methode detect_peaks() ist ein Algorithmus implementiert, der auf Material von Marcos Duarte basiert, um die Spitzen in einem bestimmten Satz von Werten zu finden. Bei dieser Funktion ist die Abstimmungs- und Filterunterstützung nicht so vollständig wie bei anderen Funktionen.

Zum Beispiel,

from detecta import detect_peaks

lst = [
    5,
    3,
    2,
    19,
    17,
    8,
    13,
    5,
    0,
    6,
    1,
    -5,
    -10,
    -3,
    6,
    9,
    8,
    14,
    8,
    11,
    3,
    2,
    22,
    8,
    2,
    1,
]
index = detect_peaks(lst)
print(index)

Ausgabe:

[ 3  6  9 15 17 19 22]