Kom igångKom igång gratis

Många upprepningar av ljud

I den här övningen börjar du med kanske den enklaste klassificeringstekniken: att beräkna medelvärdet över dimensioner i en datamängd och visuellt undersöka resultatet.

Du kommer att använda hjärtljudsdata som beskrevs i det föregående kapitlet. Vissa inspelningar är normala hjärtljud, medan andra är onormala. Kan du se skillnaden?

Två DataFrames, normal och abnormal, vardera med formen (n_times_points, n_audio_files), innehåller ljuddata för flera hjärtslag och finns tillgängliga i din arbetsyta. Samplingsfrekvensen är även laddad i variabeln sfreq. En hjälpfunktion för visualisering, show_plot_and_make_titles(), finns också tillgänglig i din arbetsyta.

Den här övningen är en del av kursen

Maskininlärning för tidsseriedata i Python

Visa kurs

Övningsinstruktioner

  • Skapa först tidsarrayen för dessa ljudfiler (alla filer har samma längd).
  • Stapla sedan värdena från de två DataFrames (normal och abnormal, i den ordningen) så att du får en enda array med formen (n_audio_files, n_times_points).
  • Använd slutligen den angivna koden för att loopa igenom varje listobjekt/axel och plotta ljudet över tid i motsvarande axelobjekt.
  • Normala hjärtljud plottas i den vänstra kolumnen och onormala i den högra kolumnen.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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()
Redigera och kör kod