什么是最好的文件格式使用以及如何正确加载数据库并在python中绘制sgnals
我正在使用https://physionet.org/physiobank/database/mitdb/中的.dat文件
我用这些代码
import numpy as np
import matplotlib.pyplot as plt
data = np.genfromtxt('100.dat',delimiter=',')
print(data)
我得到这个错误:
* 1867行,在genfromtxt中
引发ValueError(errmsg)
ValueError:检测到一些错误!
第3行(获得2列而不是1列)
第6行(获得4列而不是1列)
第9行(获取3列而不是1列)
第11行(获得3列而不是1列)
第12行(获得2列而不是1列)
第16行(获取3列而不是1列)
第17行(获得2列而不是1列)
第18行(获取3列而不是1列)
第20行(获得2列而不是1列)
第23行(获得2列而不是1列)
第27行(获取2列而不是1列)
第36行(获取2列而不是1列)
第37行(获得2列而不是1列)
第66行(获得2列而不是1列)
第67行(获得2列而不是1列)
第100行(获取2列而不是1列)
第105行(获取2列而不是1列)
第106行(获得2列而不是1列)
第118行(获取2列而不是1列)
第120行(获取5列而不是1列)
第122行(获得3列而不是1列)
第123行(获取4列而不是1列)
第125行(获得2列而不是1列)
第126行(获取2列而不是1列)
第127行(获取3列而不是1列)
第128行(获取2列而不是1列)
第134行(获得2列而不是1列)
第135行(获得2列而不是1列)
第137行(获取2列而不是1列)
第141行(获取3列而不是1列)
第143行(获取3列而不是1列)
第146行(获取2列而不是1列)
第147行(获得2列而不是1列)
第148行(获得2列而不是1列)
第149行(获得2列而不是1列)
第152行(获得3列而不是1列)
第154行(获得2列而不是1列)
第156行(获取4列而不是1列)
第162行(获得2列而不是1列)
第163行(获取2列而不是1列)
第167行(获取3列而不是1列)
第168行(获得2列而不是1列)
第174行(获得2列而不是1列)
第175行(获取2列而不是1列)
第176行(获取3列而不是1列)
第177行(获得2列而不是1列)
第179行(获得2列而不是1列)
第186行(获得2列而不是1列)
第187行(获取3列而不是1列)
第188行(获得2列而不是1列)
第189行(获取3列而不是1列)
第191行(获得2列而不是1列)
第193行(获取2列而不是1列)
第196行(获得2列而不是1列)
第199行(获得2列而不是1列)
第202行(获得2列而不是1列)
第203行(获取2列而不是1列)
第204行(获取2列而不是1列)
第209行(获取4列而不是1列)
第210行(获取4列而不是1列)
第211行(获取2列而不是1列)
第213行(获取2列而不是1列)
第218行(获得2列而不是1列)
第222行(获取2列而不是1列)
第223行(获取3列而不是1列)
第228行(获得2列而不是1列)
第236行(获得2列而不是1列)
第240行(获取2列而不是1列)
第241行(获得2列而不是1列)
第244行(获得3列而不是1列)
第246行(获取2列而不是1列)
第255行(获取2列而不是1列)
第257行(获取2列而不是1列)
第268行(获取2列而不是1列)
第269行(获取2列而不是1列)
第271行(获取2列而不是1列)
第273行(获取4列而不是1列)
第280行(获取2列而不是1列)
第281行(获得2列而不是1列)
第291行(获取2列而不是1列)
第323行(获取2列而不是1列)
第325行(获取2列而不是1列)
第334行(获得2列而不是1列)
第340行(获取2列而不是1列)
第341行(获得2列而不是1列)
第342行(获得2列而不是1列)
第364行(获取2列而不是1列)
第372行(获取3列而不是1列)
第375行(获取2列而不是1列)
第378行(获得6列而不是1列)*
最佳答案
您应该使用wfdb-python包。该文档确实非常好,并且有很多示例。要在您的环境中安装它,只需执行pip install wfdb
。
假设您在名为100.dat
的本地目录中拥有数据文件(包括上面提到的./mitdb
文件),则可以使用以下内容读取记录:
import wfdb
record = wfdb.rdsamp('mitdb/100', sampto=3000)
annotation = wfdb.rdann('sampledata/100', 'atr', sampto=3000)
然后,您可以使用以下功能来绘制数据:
wfdb.plotrec(record, annotation = annotation,
title='Record 100 from MIT-BIH Arrhythmia Database',
timeunits = 'seconds', figsize = (10,4), ecggrids = 'all')
如果本地还没有数据文件,则可以使用
wfdb
下载它们:import os
wfdb.dldatabase('mitdb', os.path.join(os.getcwd, 'mitdb'))
这将下载记录并将其保存在名为
mitdb
的本地目录中