Python读取mat文件,并保存为pickle格式的方法

yipeiwu_com7年前Python基础

这两天在搞Theano,要把mat文件转成pickle格式载入Python。

Matlab是把一维数组当做n*1的矩阵的,但Numpy里还是有vector和matrix的区别,Theano也是对二者做了区分。

直接把代码贴出来吧,好像也没什么可讲的 = =

from scipy.io import loadmat
import numpy, cPickle
 
data_dict=loadmat(r'E:\dataset\CIFAR10\CIFAR10_small.mat') #need an r!
 
my_array=numpy.array([1,1])
for key in data_dict.keys():
 if type(data_dict[key]) == type(my_array):
  #print matrix information
  print key, type(data_dict[key]),
  print data_dict[key].shape
 
#shape(n,1) (matrix in theano) -> shape(n,) (vector in theano)
print data_dict['Ytr'].shape
Ytr=numpy.hstack(data_dict['Ytr'])
Yte=numpy.hstack(data_dict['Yte'])
Yte=numpy.hstack(data_dict['Yte'])
print Ytr.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 'save is done'
 
pkl_file = open('cifar10_small_v.pkl', 'rb')
 
data1 = cPickle.load(pkl_file) # is train_set
data2 = cPickle.load(pkl_file) # is valid_set
data3 = cPickle.load(pkl_file) # is test_set
 
print type(data1[1]),data1[1].shape
 
pkl_file.close()

以上这篇Python读取mat文件,并保存为pickle格式的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

pyqt5 使用label控件实时显示时间的实例

pyqt5 使用label控件实时显示时间的实例

如下所示: import sys from PyQt5 import QtGui, QtCore, QtWidgets from PyQt5.QtWidgets import * f...

python 用lambda函数替换for循环的方法

场景如下: 现在有一个dataframe,其中一列为score,值从0-100, df: score 98 88 37 68 86 33 现在需要增加一列level,给这些分数分类,90...

python代码 FTP备份交换机配置脚本实例解析

python代码 FTP备份交换机配置脚本实例解析

代码如下 #!/bin/python #coding=utf-8 #python-version=2.75 #使用python2 from ftplib impo...

通过5个知识点轻松搞定Python的作用域

1、块级作用域 想想此时运行下面的程序会有输出吗?执行会成功吗? #块级作用域 if 1 == 1: name = "lzl" print(name) for i...

Python实现在某个数组中查找一个值的算法示例

第一种算法思路: 第一步:随机出来一个数组的下标 第二步:判断下标对应的值是否等于被查找的值,是的话终止,已找到,否的话转第三步。 第三步:判断是否随机完数组的所有下标,是的话终止,没找...