Python实现npy/mat文件的保存与读取
作者:侯小啾 时间:2023-07-22 08:49:48
除了常用的csv文件和excel文件之外,我们还可以通过PY把数据保存文npy文件格式和mat文件格式。
1. npy文件
npy即numpy对应的文件格式,关于其保存使用的是np.save()方法,其读取使用的是np.load()方法。
具体示例如下:
import numpy as np
a = np.mat('1, 2, 3;4, 5, 6')
print(a)
print(type(a))
print("=================================")
b = np.array([[1, 2, 3], [4, 5, 6]])
print(b)
print(type(b))
保存文件:
如图,矩阵和numpy数组都支持以npy文件类型保存。
np.save('a.npy', a)
np.save('b.npy', b)
读取文件
data1 = np.load('a.npy')
data2 = np.load('b.npy')
print(data1)
print(type(data1))
print("=================================")
print(data2)
print(type(data2))
如图npy数据被成功读取,且都是numpy数组数据类型。
2. mat文件
保存为mat文件依赖于scipy库中的scipy.io.savemat()方法,读取则需要用到scipy.io.loadmat()方法。
保存时,不仅仅需要传入变量,还需要将该变量的类型一并以字典的形式传入,一样支持numpy数组和矩阵。
具体示例如下:
import numpy as np
from scipy import io
a = np.mat('1, 2, 3;4, 5, 6')
print(a)
print(type(a))
print("=================================")
b = np.array([[1, 2, 3], [4, 5, 6]])
print(b)
print(type(b))
io.savemat('a.mat', {'matrix': a})
io.savemat('b.mat', {'array': b})
读取数据
data1 = io.loadmat('a.mat')
print(data1)
print(type(data1))
print("=================================")
data2 = io.loadmat('b.mat')
print(data2)
print(type(data2))
如图,数据成功被读取。但是读取的结果是一个字典,如果需要进一步读取到数据,则需要根据键名将其取出:
print(data1['matrix'])
print(type(data1['matrix']))
print("=================================")
print(data2['array'])
print(type(data2['array']))
取出时的键与存储时的变量类型有关,取出的数据都是numpy数组,不再有矩阵类型。
补充
读取mat文件并存为npy格式文件
具体见代码,注意h5py的转置问题
import numpy as np
from scipy import io
mat = io.loadmat('yourfile.mat')
# 如果报错:Please use HDF reader for matlab v7.3 files
# 改为下一种方式读取
import h5py
mat = h5py.File('yourfile.mat')
# mat文件里可能有多个cell,各对应着一个dataset
# 可以用keys方法查看cell的名字, 现在要用list(mat.keys()),
# 另外,读取要用data = mat.get('名字'), 然后可以再用Numpy转为array
print(mat.keys())
# 可以用values方法查看各个cell的信息
print(mat.values())
# 可以用shape查看维度信息
print(mat['your_dataset_name'].shape)
# 注意,这里看到的shape信息与你在matlab打开的不同
# 这里的矩阵是matlab打开时矩阵的转置
# 所以,我们需要将它转置回来
mat_t = np.transpose(mat['your_dataset_name'])
# mat_t 是numpy.ndarray格式
# 再将其存为npy格式文件
np.save('yourfile.npy', mat_t)
npy文件的读取很简单
import numpy as np
matrix = np.load('yourfile.npy')
重新读取npy文件保存为mat文件
方法一(在MATLAB双击打开时遇到了错误:Unable to read MAT-file *********.mat. Not a binary MAT-file. Try load -ASCII to read as text. ):
import numpy as np
matrix = np.load('yourfile.npy')
f = h5py.File('yourfile.mat', 'w')
f.create_dataset('dataname', data=matrix)
# 这里不会将数据转置
方法二(使用scipy):
from scipy import io
mat = np.load('rlt_gene_features.npy-layer-3-train.npy')
io.savemat('gene_features.mat', {'gene_features': mat})
来源:https://blog.csdn.net/weixin_48964486/article/details/124376710
标签:Python,npy,mat,文件,保存,读取
0
投稿
猜你喜欢
JavaScript 中的 Base64 编码(一):Encode
2010-07-23 10:16:00
教你用python实现12306余票查询
2021-03-16 01:39:19
Go语言使用select{}阻塞main函数介绍
2024-04-30 10:06:32
python实现带界面的井字棋小游戏
2022-11-14 22:28:24
简单谈谈Python中的反转字符串问题
2022-02-24 11:55:07
python实现Dijkstra算法的最短路径问题
2023-05-18 23:22:15
python 利用百度API进行淘宝评论关键词提取
2021-11-14 19:32:36
用asp程序读取网站的alexa世界排名
2008-11-23 20:43:00
Python列表中多元素删除(移除)的实现
2023-12-28 03:45:11
用python代码将tiff图片存储到jpg的方法
2021-11-24 19:54:49
你是一个职业的页面重构工作者吗?
2008-09-29 12:07:00
Python3.4解释器用法简单示例
2022-01-04 10:30:39
Python3安装tensorflow及配置过程
2021-04-07 01:47:09
一次性压缩Sqlserver2005中所有库日志的存储过程
2012-01-29 17:58:28
Python学习之书写格式及变量命名
2023-08-23 14:53:08
python3 enum模块的应用实例详解
2023-12-12 05:21:46
Python面向对象总结及类与正则表达式详解
2021-08-12 13:23:34
VueJs单页应用实现微信网页授权及微信分享功能示例
2024-04-16 09:35:50
Linux下mysql的root密码修改方法
2024-01-13 17:39:44
ASP教程:制作登陆验证页面程序
2008-10-23 15:00:00