Как читать данные 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.