Encontrar picos en Python

Shivam Arora 30 enero 2023
  1. Utilice la función scipy.signal.find_peaks() para detectar picos en Python
  2. Utilice la función scipy.signal.argrelextrema() para detectar picos en Python
  3. Utilice la función detecta.detect_peaks() para detectar picos en Python
Encontrar picos en Python

Un pico es un valor más alto que la mayoría de los valores locales. Puede haber un solo pico máximo global o varios picos. Los picos en los gráficos deben ser visibles y definidos y no deben estar ocultos en el ruido de los datos.

En este artículo, encontraremos los picos de diferentes conjuntos de valores en Python.

Utilice la función scipy.signal.find_peaks() para detectar picos en Python

El scipy.signal.find_peaks() puede detectar los picos de los datos dados. Son pocos los parámetros asociados a esta función width, threshold, distance y prominence. Devuelve los índices del valor donde se encuentra el pico.

Por ejemplo,

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)

Producción :

[ 3  6  9 15 17 19 22]

Utilice la función scipy.signal.argrelextrema() para detectar picos en Python

Esta función es similar a la función find_peaks(). Además, contiene un parámetro order. Este parámetro es un parámetro de distancia que sirve como filtro de minimización. Necesitamos proporcionar el argumento comparator como el método np.greater para calcular los índices de los picos.

Por ejemplo,

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)

Producción :

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

Utilice la función detecta.detect_peaks() para detectar picos en Python

Un algoritmo basado en material escrito por Marcos Duarte se implementa en el método detect_peaks() para encontrar los picos en un conjunto de valores dado. En esta función, el soporte de ajuste y filtrado no es tan completo como otras funciones.

Por ejemplo,

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)

Producción :

[ 3  6  9 15 17 19 22]