python np.mat,numpy中向量转成矩阵使用( )
本文主要介绍mat矩阵和npy矩阵(python和matlab)之间的转换,具有很好的参考价值。希望对你有帮助。如有错误或不足之处,请不吝赐教。
目录
mat矩阵和npy矩阵相互转换。numpy.narray矩阵保存为mat文件,读取mat文件。npy文件和mat文件的保存和读取1。npy文件2。mat文件
mat矩阵和npy矩阵互相转换
numpy.narray矩阵保存为mat文件
将numpy作为np导入
将scipy.io作为io导入
mat_path=your_mat_save_path
mat=np.zeros([4,20])
io.savemat(mat_path,{name: mat})
注意这里的垫子是numpy类型的。
读取mat文件
将numpy作为np导入
从scipy导入io
mat=io.loadmat(yourfile.mat )
#如果报告了错误,请使用MATLAB V7.3文件的HDF阅读器
#换一种方式阅读
导入h5py
mat=h5py。文件(“yourfile.mat”)
# mat文件中可能有多个单元格,每个单元格对应一个数据集。
#您可以用keys方法检查单元格的名称。现在你必须使用list(mat.keys()),
#另外要用data=mat.get (name )进行读取,然后可以用Numpy把它变成数组。
print(mat.keys())
#您可以使用values方法查看每个单元格的信息。
print(mat.values())
#您可以通过形状查看尺寸信息
print(mat[您的数据集名称]。形状)
#请注意,您在这里看到的形状信息与您在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()读取。
具体例子如下:
将numpy作为np导入
a=np.mat(1,2,3;4, 5, 6)
打印(一份)
打印(类型(a))
打印(============================)
b=np.array([[1,2,3],[4,5,6]])
打印(b)
打印(类型(b))
保存文件:
如图所示,matrix和numpy数组都支持另存为npy文件类型。
np.save(a.npy ,a)
np.save(b.npy ,b)
读取文件
data1=np.load(a.npy )
data2=np.load(b.npy )
打印(数据1)
打印(类型(数据1))
打印(============================)
打印(数据2)
打印(类型(数据2))
如图,npy数据读取成功,都是numpy数组数据类型。
2. mat文件
保存mat文件依赖于scipy库中的scipy.io.savemat()方法,而读取需要scipy.io.loadmat()方法。
保存时,不仅需要传入变量,还需要以字典的形式传入变量的类型。也支持numpy数组和矩阵。
具体例子如下:
将numpy作为np导入
从scipy导入io
a=np.mat(1,2,3;4, 5, 6)
打印(一份)
打印(类型(a))
打印(============================)
b=np.array([[1,2,3],[4,5,6]])
打印(b)
打印(类型(b))
io.savemat(a.mat ,{matrix: a})
io.savemat(b.mat ,{array: b})
读取数据
data1=io.loadmat(a.mat )
打印(数据1)
打印(类型(数据1))
打印(============================)
data2=io.loadmat(b.mat )
打印(数据2)
打印(类型(数据2))
如图所示,数据读取成功。但读书的结果是一本字典。如果需要进一步读取数据,需要根据键名取出:
打印(数据1[矩阵])
打印(类型(数据1[矩阵]))
打印(============================)
print(data2[array])
print(type(data2[array]))
检索到的关键字与存储中的变量类型相关。检索到的数据都是numpy数组,没有矩阵类型。
以上个人经验,希望给你一个参考,也希望你能支持盛行的IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。