Inizia subitoInizia gratis

Molte ripetizioni di suoni

In questo esercizio partirai forse dalla tecnica di classificazione più semplice: fare la media lungo le dimensioni di un insieme di dati e ispezionare visivamente il risultato.

Userai i dati del battito cardiaco descritti nel capitolo precedente. Alcune registrazioni mostrano attività cardiaca normale, altre invece attività anomala. Vediamo se riesci a cogliere la differenza.

Nel tuo workspace sono disponibili due DataFrame, normal e abnormal, entrambi con forma (n_times_points, n_audio_files) e contenenti l'audio di diversi battiti cardiaci. Inoltre, la frequenza di campionamento è caricata in una variabile chiamata sfreq. Nel tuo workspace è disponibile anche una funzione di comodo per il plotting, show_plot_and_make_titles().

Questo esercizio fa parte del corso

Machine Learning per dati di serie temporali in Python

Visualizza corso

Istruzioni dell'esercizio

  • Per prima cosa, crea l'array dei tempi per questi file audio (tutti gli audio hanno la stessa durata).
  • Poi, accoda i valori dei due DataFrame (normal e abnormal, in quest'ordine) in modo da ottenere un unico array di forma (n_audio_files, n_times_points).
  • Infine, usa il codice fornito per ciclare su ogni elemento/lista/asse e traccia l'audio nel tempo nell'oggetto axis corrispondente.
  • Traccerai i battiti cardiaci normali nella colonna di sinistra e quelli anomali in quella di destra

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

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()
Modifica ed esegui il codice