Začněte nyníZačněte zdarma

Opakující se zvuky

V tomto cvičení začneme jednou z nejjednodušších klasifikačních technik: zprůměrováním hodnot přes dimenze datové sady a vizuální kontrolou výsledku.

Budeme pracovat s daty srdečního tepu, která jsme popsali v předchozí kapitole. Některé záznamy zachycují normální aktivitu srdce, jiné jsou abnormální. Zkus zjistit, jestli mezi nimi poznáš rozdíl.

V pracovním prostředí máš k dispozici dva DataFrames, normal a abnormal, každý ve tvaru (n_times_points, n_audio_files), obsahující audio nahrávky několika srdečních tepů. Vzorkovací frekvence je uložena v proměnné sfreq. K dispozici je také pomocná funkce pro vykreslování show_plot_and_make_titles().

Toto cvičení je součástí kurzu

Machine Learning pro data časových řad v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Nejprve vytvoř časové pole pro tyto audio soubory (všechny mají stejnou délku).
  • Potom spoj hodnoty obou DataFrames (normal a abnormal, v tomto pořadí) do jednoho pole ve tvaru (n_audio_files, n_times_points).
  • Nakonec použij připravený kód k procházení jednotlivých položek seznamu / os a vykresli průběh audia v čase do odpovídajícího objektu osy.
  • Normální srdeční tepy vykreslíš v levém sloupci a abnormální v pravém.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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()
Upravit a spustit kód