python np.mat,numpy中向量转成矩阵使用( )

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: