Python读取mat文件,并保存为pickle格式的方法
这两天在搞Theano,要把mat文件转成pickle格式载入Python。
Matlab是把一维数组当做n*1的矩阵的,但Numpy里还是有vector和matrix的区别,Theano也是对二者做了区分。
直接把代码贴出来吧,好像也没什么可讲的==
fromscipy.ioimportloadmat
importnumpy,cPickle
data_dict=loadmat(r'E:\dataset\CIFAR10\CIFAR10_small.mat')#needanr!
my_array=numpy.array([1,1])
forkeyindata_dict.keys():
iftype(data_dict[key])==type(my_array):
#printmatrixinformation
printkey,type(data_dict[key]),
printdata_dict[key].shape
#shape(n,1)(matrixintheano)->shape(n,)(vectorintheano)
printdata_dict['Ytr'].shape
Ytr=numpy.hstack(data_dict['Ytr'])
Yte=numpy.hstack(data_dict['Yte'])
Yte=numpy.hstack(data_dict['Yte'])
printYtr.shape
train_set=(data_dict['Xtr'],Ytr)
valid_set=(data_dict['Xte'],Yte)
test_set=(data_dict['Xte'],Yte)
output=open('cifar10_small_v.pkl','wb')
cPickle.dump(train_set,output)
cPickle.dump(valid_set,output)
cPickle.dump(test_set,output)
output.close()
print'saveisdone'
pkl_file=open('cifar10_small_v.pkl','rb')
data1=cPickle.load(pkl_file)#istrain_set
data2=cPickle.load(pkl_file)#isvalid_set
data3=cPickle.load(pkl_file)#istest_set
printtype(data1[1]),data1[1].shape
pkl_file.close()
以上这篇Python读取mat文件,并保存为pickle格式的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。