>  기사  >  백엔드 개발  >  SciPy의 find_peaks 함수를 사용하여 Python에서 중요한 피크를 찾는 방법은 무엇입니까?

SciPy의 find_peaks 함수를 사용하여 Python에서 중요한 피크를 찾는 방법은 무엇입니까?

DDD
DDD원래의
2024-10-22 20:33:13268검색

How to Find Significant Peaks in Python Using SciPy's find_peaks Function?

Python/SciPy에서 피크 찾기

데이터의 피크를 찾는 것은 신호 처리, 이미지 분석, 데이터 분석 등 다양한 분야에서 일반적인 작업입니다. 데이터 분석. Python은 SciPy의 scipy.signal.find_peaks 함수를 포함하여 피크 감지를 위한 여러 패키지와 함수를 제공합니다.

SciPy의 피크 찾기 알고리즘

find_peaks 함수는 1D 배열을 다음과 같이 사용합니다. 입력하고 피크의 인덱스를 반환합니다. 여러 매개변수를 기반으로 피크를 감지하는 피크 찾기 알고리즘을 사용합니다.

  • 폭: 샘플의 피크 간 최소 간격
  • 임계값: 피크 감지를 위한 최소 진폭 임계값.
  • 거리: 연속 피크 사이의 최소 거리.
  • 돌출도: 지형 돌출도. 주변과 비교한 피크의 상대적 높이.

노이즈 제거를 위한 돌출부

프로미넌스 매개변수는 노이즈로 인한 피크와 중요한 피크를 구별하는 데 특히 유용합니다. . 돌출부는 정상에서 더 높은 지형으로 이동하기 위한 최소 높이 하강으로 정의됩니다. 높은 눈에 띄는 임계값을 설정함으로써 알고리즘은 노이즈로 인한 작은 피크를 효과적으로 필터링할 수 있습니다.

사용 예

다음 코드는 노이즈가 있는 주파수에서 피크 찾기를 보여줍니다. -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>

플롯에서 볼 수 있듯이 find_peaks 함수는 진폭과 돌출성이 모두 높은 피크를 찾아 노이즈로 인한 피크를 효과적으로 필터링합니다.

기타 피크 찾기 옵션

find_peaks 외에도 SciPy는 peak_widths 및 argrelmax와 같은 다른 피크 찾기 기능도 제공합니다. 이러한 함수는 특정 애플리케이션이나 조정에 더 적합할 수 있습니다.

결론

SciPy의 scipy.signal.find_peaks 함수는 Python에서 피크 찾기를 위한 강력하고 다양한 솔루션을 제공합니다. . 눈에 띄는 부분을 포함한 조정 가능한 매개변수를 통해 다양한 유형의 데이터에서 중요한 피크를 감지할 수 있는 맞춤화가 가능합니다.

위 내용은 SciPy의 find_peaks 함수를 사용하여 Python에서 중요한 피크를 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.