小编写这篇文章的目的,主要是给大家介绍关于python和npy矩阵的相关介绍,下面会给大家做出一个详细的解答,希望可以给各位读者带来帮助。
mat矩阵和npy矩阵互相转换
numpy.narray矩阵保存为mat文件
import numpy as np import scipy.io as io mat_path='your_mat_save_path' mat=np.zeros([4,20]) io.savemat(mat_path,{'name':mat})
注意这里的mat是numpy类型的
读取mat文件
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文件与mat文件的保存与读取
除了常用的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))
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']))
以上就是小编为大家总结的相关知识,希望可以为各位读者带来更多的帮助。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/127793.html
摘要:原生实现只存在于渲染引擎,原生是不存在的。假设有以下的代码包括了,换种说法是划分在同一组。于是,实现了一群粒子做同一件事其实就是实现了原生下的容器。不过,容器除了嵌套行为,它还有并列的行为兄弟容器。当作一次记忆加深的过程。 查了一下有道: Containern. 集装箱;容器 DisplayObject 实例分类 我目前用到过的 DisplayObject 有5种:Bitmap, Sh...
阅读 873·2023-01-14 11:38
阅读 819·2023-01-14 11:04
阅读 668·2023-01-14 10:48
阅读 1823·2023-01-14 10:34
阅读 874·2023-01-14 10:24
阅读 738·2023-01-14 10:18
阅读 466·2023-01-14 10:09
阅读 500·2023-01-14 10:02