Python에서 피크 찾기
Shivam Arora
2023년1월30일
-
scipy.signal.find_peaks()
함수를 사용하여 Python에서 피크 감지 -
scipy.signal.argrelextrema()
함수를 사용하여 Python에서 피크 감지 -
detecta.detect_peaks()
함수를 사용하여 Python에서 피크 감지
피크는 대부분의 로컬 값보다 높은 값입니다. 단일 글로벌 최대 피크 또는 여러 피크가 있을 수 있습니다. 그래프의 피크는 가시적이고 정의되어야 하며 데이터 노이즈에 숨겨져서는 안 됩니다.
이 기사에서는 Python에서 다양한 값 집합의 피크를 찾을 수 있습니다.
scipy.signal.find_peaks()
함수를 사용하여 Python에서 피크 감지
scipy.signal.find_peaks()
는 주어진 데이터의 피크를 감지할 수 있습니다. 이 함수 width
, threshold
, distance
및 prominence
와 관련된 매개변수는 거의 없습니다. 피크가 발견된 값의 인덱스를 반환합니다.
예를 들어,
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)
출력:
[ 3 6 9 15 17 19 22]
scipy.signal.argrelextrema()
함수를 사용하여 Python에서 피크 감지
이 함수는 find_peaks()
함수와 유사합니다. 또한 order
매개변수가 포함되어 있습니다. 이 매개변수는 최소화 필터 역할을 하는 거리 매개변수입니다. 피크의 인덱스를 계산하기 위해 np.greater
방법으로 comparator
인수를 제공해야 합니다.
예를 들어,
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)
출력:
(array([ 3, 6, 9, 15, 17, 19, 22], dtype=int64),)
detecta.detect_peaks()
함수를 사용하여 Python에서 피크 감지
Marcos Duarte가 작성한 자료를 기반으로 하는 알고리즘은 detect_peaks()
메서드로 구현되어 주어진 값 세트에서 피크를 찾습니다. 이 기능에서 튜닝 및 필터링 지원은 다른 기능만큼 완전하지 않습니다.
예를 들어,
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)
출력:
[ 3 6 9 15 17 19 22]