Algorithme de détection des pics en Python/SciPy
La détection des pics dans les données est une tâche courante dans l'analyse des données. Pour les utilisateurs de Python, SciPy fournit la fonction scipy.signal.find_peaks, spécialement conçue à cet effet.
Choisir les bons paramètres
Pour identifier efficacement les pics, comprendre les paramètres disponibles paramètres est crucial. Bien que des paramètres tels que la largeur, le seuil et la distance offrent une certaine utilité, le paramètre qui distingue véritablement les vrais pics du bruit est la proéminence.
Qu'est-ce que la proéminence ?
La proéminence mesure la hauteur requise pour descendre d'un sommet vers un terrain plus élevé. En d'autres termes, cela indique « l'importance » du pic par rapport aux points de données environnants.
Utiliser Prominence pour la détection des pics
Le test de find_peaks à l'aide d'une sinusoïde à fréquence variable démontre l'importance du pic. efficacité de la proéminence. Alors que d'autres paramètres ont du mal à prendre en compte les largeurs de pic ou les niveaux de bruit variables, la proéminence identifie systématiquement les pics significatifs.
Exemple de code
L'extrait de code suivant illustre l'utilisation de find_peaks avec différents paramètres :
<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>
Les résultats montrent que la proéminence identifie efficacement les pics significatifs, même en présence de bruit. En combinant des paramètres tels que la proéminence avec d'autres comme la distance ou la largeur, vous pouvez affiner davantage la détection des pics dans des données complexes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!