1.在做数据处理时,matlab中经常会将.mat文件中的X和y分别以两个矩阵进行存储,例如wine.mat数据集
如下:多属性X和标签y已经分离
读取.mat代码
import scipy.io
data = scipy.io.loadmat('wine.mat')
print(data)
2.如何将原始的csv文件转换成属性与标签分离的.mat文件呢?
首先看原始csv文件的y是紧跟在X后面的
预期效果mat文件
3 步骤如下:
3.1 读取文件
import pandas as pd
df = pd.read_csv('shouhuan3.csv')
3.2 将多属性大X以值的方式放入矩阵中
X = df.drop(['class'],axis=1)
X = X.values
3.3 将标签y以值的形式放入到矩阵中,这个矩阵是单行的
y = df['class']
y = y.values
3.4 通过scipy中的io流写入文件ddd.mat中去
import scipy.io as sio
name = 'ddd.mat'
sio.savemat(name, {'X': X, 'y': y})
3.4 大功告成!读取文件看一下,依然用到io流,就可以呈现刚刚的预期效果了,文件也会自动保存
import scipy.io
data = scipy.io.loadmat('ddd.mat')
print(data)