有些时候我们会用到mat数据格式,但是我们该怎么使用它呢?
mat格式是一般而言的MATLAB数据的存储格式,对于经常要混用MATLAB和Python的数据处理相关的问题,我们往往需要将MATLAB中的数据导入至Python,并转成我们想要的数据格式,本文就整理成DataFrame格式做出说明:
这里我们用到了scipy库来导入mat文件。
具体实现如下:
from scipy.io import loadmat
然后我们导入数据:
data=loadmat('./data/ex7data2.mat')
loadmat函数里面是文件所处的路径位置
我们展示一下输出的数据:
F:\anaconda\envs\sklearn-env\python.exe F:/PycharmProject/K-means/K-means_1.py
{'__header__': b'MATLAB 5.0 MAT-file, Platform: GLNXA64, Created on: Wed Nov 16 00:48:22 2011', '__version__': '1.0', '__globals__': [], 'X': array([[ 1.84207953, 4.6075716 ],
[ 5.65858312, 4.79996405],
[ 6.35257892, 3.2908545 ],
[ 2.90401653, 4.61220411],
[ 3.23197916, 4.93989405],
[ 1.24792268, 4.93267846],
[ 1.97619886, 4.43489674],
[ 2.23454135, 5.05547168],
[ 2.98340757, 4.84046406],
......(中间的数据省略一部分)
[ 6.11768055, 2.85475655],
[ 0.94048944, 5.71556802]])}
Process finished with exit code 0
print(type(data))
print(data.keys())
<class 'dict'>
dict_keys(['__header__', '__version__', '__globals__', 'X'])
我们可以清楚的看到,导入的文件是Python中的字典类型。
我们只需要X
的数据,所以我们转换成DataFrame数据类型:
dataset = pd.DataFrame(data.get('X'), columns=['X1', 'X2'])
print(dataset)
X1 X2
0 1.842080 4.607572
1 5.658583 4.799964
2 6.352579 3.290854
3 2.904017 4.612204
4 3.231979 4.939894
.. ... ...
295 7.302787 3.380160
296 6.991984 2.987067
297 4.825534 2.779617
298 6.117681 2.854757
299 0.940489 5.715568
[300 rows x 2 columns]
Process finished with exit code 0
我们看一下转换后的数据类型:
print(type(dataset))
<class 'pandas.core.frame.DataFrame'>
转换完成!