Python读取mat文件

最近在进行学习深度学习过程中,遇到了以MATLAB的.mat格式存储的数据,需要用python读取出来处理,于是就找到了以下比较方便的三种python读取mat文件的方法:

1. 使用scipy.io来读取

-如果你的matlab的版本比较旧,保存的.mat 格式为‘-v7.3’以前的版本,可以采用scipy.io

pip install scipy  #安装scipy库
import scipy.io as sio
#这里‘data1.mat’是相对文件路径
boxes = sio.loadmat(’name_box.mat‘)['box'].ravel()

1.5 知识小插曲

在开始下面之前,先来了解下:MATLAB v7.3 引入了对 HDF5 文件格式的支持,这是一种用于存储和组织大量数据的高效、可扩展的格式。HDF5"Hierarchical Data Format"的第五版,它支持多种数据类型、复杂的数据 structures,并且可以高效地处理大量数据。

MATLAB v7.3 及以后版本支持的 HDF5格式提供了一种灵活、高效的数据存储解决方案,可以在 MATLAB 以及其他编程环境中使用相应的工具进行读取和处理。

接下来我们便进入如何读取MATLAB v7.3及以后版本支持的 HDF5 格式的mat文件环节

2. 使用hdf5来读取

MATLAB v7.3及以后版本创建的.mat文件,由于scipy.io不支持,根据以上所述,此处采用hdf5

对于处理非MATLAB .mat格式的HDF5文件,h5py也可以创建、读取和修改HDF5文件。具体可见Python处理HDF5文件:h5py库

pip install h5py  #安装h5py库
import h5py
import numpy as np

train_nor = h5py.File("../Training/train_nor.mat", "r")
# matlab中load出来的变量名为'train_naf'
# 也可以通过下面代码来查看
# print(train_nor.keys())
data_nor = np.array(train_nor['train_naf']).transpose()
# print(data_nor.shape)

train_af = h5py.File("../Training/train_af.mat", "r")
data_af = np.array(train_af['train_af']).transpose()
# print(data_af.shape)

3. 使用mat73来读取

除了可以使用上面的hdf5库来读取MATLAB v7.3及以后版本创建的.mat文件,也可以使用mat73库读取。

pip install mat73  #安装mat73库
import mat73

path = r"./ECG_dimensions/Training/train_af.mat"
data = mat73.loadmat(path)
print(data.keys())  # 查看data的key值
print(data)

参考:

  1. https://www.jb51.net/article/247616.html
  2. https://www.cnblogs.com/hechangchun/p/14305968.html
  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值