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

yipeiwu_com5年前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设计】。

相关文章

在python3中pyqt5和mayavi不兼容问题的解决方法

在python3中pyqt5和mayavi不兼容问题的解决方法

环境: win10 64bit & Linux Mint 18.2 WinPython3.6.1,spyder,qtconsole iep3.7 问题描述: 通过http://www.l...

Python聊天室程序(基础版)

本文实例为大家分享了Python聊天室程序的具体代码,供大家参考,具体内容如下 客户端代码: # Filename: socketClient.py import socket...

python 实现查找文件并输出满足某一条件的数据项方法

python 实现文件查找和某些项输出 本文是基于给定一文件(students.txt),查找其中GPA分数最高的 输出,同时输出其对应的姓名和学分 一. 思路 首先需要打开文件,读取文...

在Python的Flask框架中使用日期和时间的教程

在Python的Flask框架中使用日期和时间的教程

 时间戳的问题 我们的微博应用的一个忽略了很久的问题就是日间和日期的显示。 直到现在,我们在我们的User和Post对象中使用Python它自己的方式来渲染时间对象,但这并不是...

如何使用Python脚本实现文件拷贝

如何使用Python脚本实现文件拷贝

这篇文章主要介绍了如何使用Python脚本实现文件拷贝,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.实现目的 统一时间对服务器...