Bagaimanakah Prominence Membantu dalam Pengesanan Puncak dalam Python Menggunakan SciPy?

Mary-Kate Olsen
Lepaskan: 2024-10-22 22:44:29
asal
287 orang telah melayarinya

How Does Prominence Help in Peak Detection in Python Using SciPy?

Algoritma Pengesanan Puncak dalam Python/SciPy

Mengesan puncak dalam data ialah tugas biasa dalam analisis data. Untuk pengguna Python, SciPy menyediakan fungsi scipy.signal.find_peaks, disesuaikan khusus untuk tujuan ini.

Memilih Parameter yang Tepat

Untuk mengenal pasti puncak dengan berkesan, memahami yang tersedia parameter adalah penting. Walaupun parameter seperti lebar, ambang dan jarak menawarkan beberapa utiliti, parameter yang benar-benar membezakan puncak sebenar daripada hingar ialah penonjolan.

Apakah itu Penonjolan?

Penonjolan mengukur ketinggian yang diperlukan untuk turun dari puncak ke mana-mana rupa bumi yang lebih tinggi. Dalam erti kata lain, ia menunjukkan "kepentingan" puncak berbanding titik data sekeliling.

Menggunakan Penonjolan untuk Pengesanan Puncak

Menguji find_peaks menggunakan sinusoid yang berbeza-beza frekuensi menunjukkan keberkesanan penonjolan. Walaupun parameter lain bergelut untuk mengambil kira lebar puncak atau aras hingar yang berbeza-beza, penonjolan secara konsisten mengenal pasti puncak yang ketara.

Contoh Kod

Coretan kod berikut menggambarkan penggunaan find_peaks dengan parameter yang berbeza:

<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, _ = find_peaks(x, distance=20)
peaks2, _ = find_peaks(x, prominence=1)      # BEST!
peaks3, _ = find_peaks(x, width=20)
peaks4, _ = find_peaks(x, threshold=0.4)

plt.subplot(2, 2, 1)
plt.plot(peaks, x[peaks], "xr"); plt.plot(x); plt.legend(['distance'])
plt.subplot(2, 2, 2)
plt.plot(peaks2, x[peaks2], "ob"); plt.plot(x); plt.legend(['prominence'])
plt.subplot(2, 2, 3)
plt.plot(peaks3, x[peaks3], "vg"); plt.plot(x); plt.legend(['width'])
plt.subplot(2, 2, 4)
plt.plot(peaks4, x[peaks4], "xk"); plt.plot(x); plt.legend(['threshold'])
plt.show()</code>
Salin selepas log masuk

Keputusan menunjukkan bahawa penonjolan berkesan mengenal pasti puncak yang ketara, walaupun dalam keadaan bunyi bising. Dengan menggabungkan parameter seperti penonjolan dengan yang lain seperti jarak atau lebar, anda boleh memperhalusi pengesanan puncak dalam data kompleks lagi.

Atas ialah kandungan terperinci Bagaimanakah Prominence Membantu dalam Pengesanan Puncak dalam Python Menggunakan SciPy?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!