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]: import pandas as pdIn [33]: df = pd.DataFrame(m['H_BETA'])
In [34]: df.head()
Out[34]:
0 1 2 3 4 5 6 7 8 9 10
0 0.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啦!
以上是 python 读取.mat文件 的全部内容, 来源链接: utcz.com/z/388691.html