python mat文件读取失败_python 读取.mat文件

导入所需包

from scipy.io import loadmat

读取.mat文件

随便从下面文件里读取一个:

m = loadmat(‘H_BETA.mat‘) # 读出来的 m 是一个dict(字典)数据结构

读出来的m内容:

m:

{‘__header__‘: b‘MATLAB 5.0 MAT-file, Platform: GLNXA64, Created on: Mon Aug 5 17:14:09 2019‘,‘__version__‘: ‘1.0‘,‘__globals__‘: [],‘H_BETA‘: array([[ 0.68508148, 0.36764355, 0.73505849, ..., 0.27600164,0.67968929, 0.70506438],

[0.74920812, 1.10949748, 0.47506305, ..., 0.32871445,0.61247345, 1.06948844],

[0.83311522, 1.06321302, 0.97364609, ..., 0.85837753,0.96296771, 1.46095171],

...,

[ nan, nan, nan, ..., nan,

nan,-9.04648469],

[ nan, nan, nan, ..., nan,

nan, nan],

[ nan, nan, nan, ..., nan,

In [29]: m.keys()

Out[29]: dict_keys([‘__header__‘, ‘__version__‘, ‘__globals__‘, ‘H_BETA‘])

取出.mat里所需信息

.mat 文件里的数据结构是 dict ,所以取值要按照 key:value 的形式:

In [30]: m[‘H_BETA‘]

Out[30]:

array([[0.68508148, 0.36764355, 0.73505849, ..., 0.27600164,0.67968929, 0.70506438],

[0.74920812, 1.10949748, 0.47506305, ..., 0.32871445,0.61247345, 1.06948844],

[0.83311522, 1.06321302, 0.97364609, ..., 0.85837753,0.96296771, 1.46095171],

...,

[ nan, nan, nan, ..., nan,

nan,-9.04648469],

[ nan, nan, nan, ..., nan,

nan, nan],

[ nan, nan, nan, ..., nan,

nan, nan]])

In [31]: type(m[‘H_BETA‘])

Out[31]: numpy.ndarray

预处理数据

上面读出来的数据是 ndarray 类型,为了方便数据的展示,我们可以将其转换为,pandas的DataFrame:

In [32]: importpandas as pd

In [33]: df = pd.DataFrame(m[‘H_BETA‘])

In [34]: df.head()

Out[34]:

01 2 3 4 5 6 7 8 9 10 00.685081 0.367644 0.735058 0.085046 0.104332 0.560731 0.350219 0.758185 0.303823 0.114022 0.452877

1 0.749208 1.109497 0.475063 0.896100 1.117772 0.611356 0.662669 0.603077 0.863930 0.756870 0.725808

2 0.833115 1.063213 0.973646 0.935061 0.631670 0.916800 0.662993 0.543231 0.671558 1.027954 0.526402

3 0.488906 0.932741 0.956622 0.573116 0.893764 0.987304 0.380807 1.211157 0.550213 0.898408 1.153289

4 0.440694 0.503209 0.509693 0.477054 0.344717 -0.054662 1.124213 0.344906 0.612898 0.217625 -0.129715 [5 rows x 2111 columns]

如此,数据就比较规整了,是保存成文件,还是做其他处理,就by yourself啦!

原文:https://www.cnblogs.com/bigtreei/p/11307872.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值