栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

使用Python将mat文件转换为npy文件

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Python将mat文件转换为npy文件

本人最近在做心电信号的处理,有时候会用到npy文件,但官方给的数据库中并没有npy文件,只有dat、ecg、st、hea文件,于是,我先先去PhysioBank ATM将心电信号数据导出为mat格式文件,通过如下语句便可以将mat转换为npy。

注意:只有mat文件里全都是数据时才可直接通过np.save转为npy格式,如果mat文件里不仅仅是数据,还包括一些非数据的内容,比如标签之类的,则比如先将mat文件里的数据提取完后才能进行转换。

以我处理的心电信号为例来说,它是一个字典类型dict,里面包括一些属性,通过相应的语句可以看出它里面包含的属性有:'__header__', '__version__', '__globals__', 'val'这四个,我刚开始对于这四个属性并不了解,不清楚各个里面存了什么内容,将各个属性打印后,发现val里面存的是数据,因此,我将val里面数据提出来,便可以将其转为npy文件。

导入数据:

data=sio.loadmat('G:MIT_BPDmit-bih-polysomnographic-database-1.0.0slp66m.mat')

如果mat里全都是数值,则可以通过如下语句转为npy

np.save('G:MIT_BPDmit-bih-polysomnographic-database-1.0.0slp66npy.npy',data)

如果mat里包含非数值型数据:

查看文件包含的属性:

print(list(data))

 打印各个属性包含的内容:

print(data["val"])

 提取包含数值的那个属性

data2=data['val'];

导出npy

np.save('G:MIT_BPDmit-bih-polysomnographic-database-1.0.0slp66npy.npy',data2)

 完整代码如下

case1:mat只包含数值文件:

import numpy as np
import scipy.io as sio
data=sio.loadmat('G:MIT_BPDmit-bih-polysomnographic-database-1.0.0slp66m.mat')
np.save('G:MIT_BPDmit-bih-polysomnographic-database-1.0.0slp66npy.npy',data) 

case2:mat包含非数值:

import numpy as np
import scipy.io as sio

data=sio.loadmat('G:MIT_BPDmit-bih-polysomnographic-database-1.0.0slp66m.mat')

#以下为我调试的内容,查看哪个属性下包含数值文件
print(type(data)) #显示mat的数据类型
print(list(data)) #只显示mat包含的属性
print(data["val"]) #显示属性值#
#找到数值型的属性后,转为npy
data2=data['val'];
np.save('G:MIT_BPDmit-bih-polysomnographic-database-1.0.0slp66npy.npy',data2)

PhysioBank ATMhttps://archive.physionet.org/cgi-bin/atm/ATM

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/822421.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号