ПочатиПочніть безкоштовно

Багато повторень звуків

У цій вправі ви почнете з, мабуть, найпростішого прийому класифікації: усереднення за вимірами набору даних і візуальний огляд результату.

Ви використаєте дані серцебиття, описані в попередньому розділі. Деякі записи містять нормальну активність серця, а інші — аномальну. Подивімося, чи зможете ви помітити різницю.

У вашому робочому середовищі доступні два DataFrameʼи, normal і abnormal, кожен із формою (n_times_points, n_audio_files), що містять аудіо кількох серцебиттів. Також частоту дискретизації завантажено у змінну sfreq. Допоміжна функція для побудови графіків show_plot_and_make_titles() також доступна у вашому середовищі.

Ця вправа є частиною курсу

Machine Learning для часових рядів у Python

Переглянути курс

Інструкції до вправи

  • Спочатку створіть масив часу для цих аудіофайлів (усі аудіо мають однакову тривалість).
  • Потім обʼєднайте значення двох DataFrameʼів (normal і abnormal, у такому порядку), щоб отримати єдиний масив форми (n_audio_files, n_times_points).
  • Нарешті, скористайтеся наданим кодом, щоб пройтися циклом по кожному елементу списку / осі та побудувати графік аудіосигналу в часі у відповідному обʼєкті осей.
  • Нормальні серцебиття побудуйте в лівому стовпці, а аномальні — у правому

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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()
Редагувати та запускати код