De nombreuses répétitions de sons
Dans cet exercice, vous allez commencer par l’une des techniques de classification les plus simples : faire la moyenne le long des dimensions d’un jeu de données et inspecter visuellement le résultat.
Vous utiliserez les données de battements cardiaques décrites au chapitre précédent. Certains enregistrements correspondent à une activité cardiaque normale, tandis que d’autres sont anormaux. Voyons si vous parvenez à faire la différence.
Deux DataFrames, normal et abnormal, chacun de forme (n_times_points, n_audio_files) et contenant l’audio de plusieurs battements, sont disponibles dans votre espace de travail. De plus, la fréquence d’échantillonnage est chargée dans une variable appelée sfreq. Une fonction pratique de traçage, show_plot_and_make_titles(), est également disponible dans votre espace de travail.
Cet exercice fait partie du cours
Machine Learning for Time Series Data in Python
Instructions
- Commencez par créer le tableau des temps pour ces fichiers audio (tous les audios ont la même durée).
- Empilez ensuite les valeurs des deux DataFrames (
normalpuisabnormal, dans cet ordre) afin d’obtenir un tableau unique de forme(n_audio_files, n_times_points). - Enfin, utilisez le code fourni pour parcourir chaque élément de liste / axe et tracer l’audio en fonction du temps dans l’objet axe correspondant.
- Vous tracerez les battements normaux dans la colonne de gauche et les anormaux dans la colonne de droite
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
fig, axs = plt.subplots(3, 2, figsize=(15, 7), sharex=True, sharey=True)
# Calculate the time array
time = np.arange(____) / ____
# Stack the normal/abnormal audio so you can loop and plot
stacked_audio = np.hstack([____, ____]).T
# Loop through each audio file / ax object and plot
# .T.ravel() transposes the array, then unravels it into a 1-D vector for looping
for iaudio, ax in zip(stacked_audio, axs.T.ravel()):
ax.plot(time, iaudio)
show_plot_and_make_titles()