開始使用免費開始

聲音的多次重複

在這個練習中,你會從也許是最簡單的分類技巧開始:對資料集的各個維度取平均,並以視覺方式檢視結果。

你會使用上一章介紹的心跳資料。有些錄音是「正常」的心跳活動,另一些則是「異常」活動。來看看你能不能分辨差異。

工作環境中已提供兩個 DataFrame,normalabnormal,形狀皆為 (n_times_points, n_audio_files),包含多段心跳的音訊。此外,取樣頻率已載入為變數 sfreq。另有一個方便的繪圖函式 show_plot_and_make_titles() 也可供你使用。

本練習屬於課程

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()
編輯並執行程式碼