python - 在python中加载MIT-BIH心律失常数据库

标签 python dataset

什么是最好的文件格式使用以及如何正确加载数据库并在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的本地目录中

关于python - 在python中加载MIT-BIH心律失常数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48666526/

相关文章:

python - python 中是否有等效的 drand48() 或它的包装器?

python - "Functions that consume an entire iterable won' t 终止”?

c# - Linq 查询 - 列上不同的数据类型

python - Sklearn 多类数据集加载

python - SQLite3 Python : executemany SELECT

Python windrose 90 度偏离和错误的标签

python - 基于另一个数组中的信息对 NumPy 数组进行操作

performance - 有没有可以快速处理大型数据集的DBGrid组件?

c# - 将列添加到数据集以用作 XML 父节点

c# - C#中dataGridViews中的列顺序问题