Encontre picos em Python

Shivam Arora 10 outubro 2023
  1. Use a função scipy.signal.find_peaks() para detectar picos em Python
  2. Use a função scipy.signal.argrelextrema() para detectar picos em Python
  3. Use a função detecta.detect_peaks() para detectar picos em Python
Encontre picos em Python

Um pico é um valor mais alto do que a maioria dos valores locais. Pode haver um único pico máximo global ou vários picos. Os picos nos gráficos devem ser visíveis e definidos e não devem ser ocultados no ruído de dados.

Neste artigo, encontraremos os picos de diferentes conjuntos de valores em Python.

Use a função scipy.signal.find_peaks() para detectar picos em Python

O scipy.signal.find_peaks() pode detectar os picos dos dados fornecidos. Poucos parâmetros estão associados a esta função width, threshold, distance e prominence. Ele retorna os índices do valor onde o pico é encontrado.

Por exemplo,

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)

Resultado:

[ 3  6  9 15 17 19 22]

Use a função scipy.signal.argrelextrema() para detectar picos em Python

Esta função é semelhante à função find_peaks(). Além disso, contém um parâmetro order. Este parâmetro é um parâmetro de distância que serve como um filtro de minimização. Precisamos fornecer o argumento comparator como o método np.greater para calcular os índices dos picos.

Por exemplo,

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)

Resultado:

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

Use a função detecta.detect_peaks() para detectar picos em Python

Um algoritmo baseado em material escrito por Marcos Duarte é implementado no método detect_peaks() para encontrar os picos em um determinado conjunto de valores. Nesta função, o suporte de ajuste e filtragem não é tão completo quanto outros recursos.

Por exemplo,

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)

Resultado:

[ 3  6  9 15 17 19 22]