关于Python处理.mat表格文件
参考:
读入mat:
http://www.cnblogs.com/cymwill/p/8331002.html
dataframe常见操作:
https://blog.csdn.net/xtfge0915/article/details/52938740
我们做实验时,生成的数据可能是matlab生成的mat表格文件,而我们用Python做机器学习处理时候,往往需要的是DataFrame文件,因为这样方便做特征标记与区分。
方法1:将mat转为csv,再做处理
其实最简单的就是直接在电脑上新建一个csv文件,把mat表格的全选复制粘贴过来,再人为加上一行标签就可以了。那样就得到了一个我们想要的csv文件。
有了csv文件,那样我们只需要:
import pandas as pd
data = pd.read_csv(r'xxx.csv')#生成的就是DataFrame文件
print("数据的前5行:",data.head())#前五行
print("数据的形状大小:",data.shape)
X = data[[
"td","newtd"
]]
print("X相关:",X.head(),X.shape)
y = data[['y']]#y是第一行的标签,你自己添加的
print("y相关:",y.head(),y.shape)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0,test_size=0.2)#随机划分训练集,测试集
print(X_train.shape,y_train.shape,X_test.shape,y_test.shape)
输出:
数据的前5行: load1 load2 load3 ... new2_1 new1_2 new1_1
0 5 3 1 ... 4.609870 3.480000e-19 0.000024
1 5 1 5 ... 4.632195 2.300000e-19 0.000022
2 1 1 5 ... 4.644054 1.850000e-19 0.000021
3 5 3 3 ... 4.649179 1.680000e-19 0.000020
4 3 5 3 ... 4.629969 2.400000e-19 0.000022
[5 rows x 56 columns]
数据的形状大小: (2998, 56)
X相关: td newtd
0 2.570000e-09 -19.779360
1 2.090000e-09 -19.986102
2 2.230000e-09 -19.921264
3 2.320000e-09 -19.881699
4 2.230000e-09 -19.921264 (2998, 2)
y相关: y
0 3.160000e-09
1 2.570000e-09
2 2.660000e-09
3 2.730000e-09
4 2.720000e-09 (2998, 1)
(2398, 2) (2398, 1) (600, 2) (600, 1)
接下来我们愉快的运用模型预测就好了!
方法2:将mat直接转为dataframe,在上面直接添加标签(推荐)
由于这些代码都是在实验室服务器上运行的,就不贴出来结果了。
from scipy.io import loadmat#用于加载mat文件
data_m= loadmat("xxx.mat")#mat-->dict字典。
print(data_m.keys())#其中有很多key,注意找自己数据所在的那个
data_load = data_m["ML_load"]#我需要的是这个,这是一个2998*10的矩阵
data_load = pd.DataFrame(data_load,columns=("load1","load2","load3","load4","load5","load6","load7","load8","load9","load10",))#给每列加上一个名字或者叫特征名,此时data_load就是一个dataframe类型了。
print(data_load.head())#打印该df的前五行
print(data_load.shape)
后面会更新dataframe合并的文章,因为我们可能特征是在多个mat表格里的。