Как читать данные edf в Python 3

Как я могу прочитать данные EDF, используя Python? Я хочу проанализировать данные файла edf, но не могу прочитать его с помощью pyEDFlib. Выкинул ошибку OSError: The file is discontinous and cannot be read и я не уверен почему.

2 ответа

Я предполагаю, что ваши данные представляют собой биологические временные ряды, такие как ЭЭГ, это правильно? Если это так, вы можете использовать библиотеку MNE.

Сначала вы должны установить его, так как это не стандартная библиотека, см. Здесь: https://martinos.org/mne/dev/getting_started.html

Затем вы можете использовать метод read_raw_edf, см. Здесь: https://martinos.org/mne/dev/generated/mne.io.read_raw_edf.html

Например:

import mne
file = "my_path\\my_file.edf"
data = mne.io.read_raw_edf(file)
raw_data = data.get_data()
# you can get the metadata included in the file and a list of all channels:
info = data.info
channels = data.ch_names

См. Документацию по ссылкам выше для других свойств объекта данных.

Другой способ прочитать массив edf-файл -> с помощью pyedflib (если вы не хотите использовать mne по причинам зависимости):

       import pyedflib
 def edf_to_arr(edf_path):
    f = pyedflib.EdfReader(edf_path)
    n = f.signals_in_file
    signal_labels = f.getSignalLabels()
    sigbufs = np.zeros((n, f.getNSamples()[0]))
    for i in np.arange(n):
        sigbufs[i, :] = f.readSignal(i)
    
    return sigbufs

Здесь есть дополнительная документация: документы pyedflib.

Другие вопросы по тегам