成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

pythonmat矩陣和matlabnpy矩陣實(shí)現(xiàn)互相轉(zhuǎn)換

89542767 / 571人閱讀


  小編寫這篇文章的目的,主要是給大家介紹關(guān)于python和npy矩陣的相關(guān)介紹,下面會(huì)給大家做出一個(gè)詳細(xì)的解答,希望可以給各位讀者帶來幫助。


  mat矩陣和npy矩陣互相轉(zhuǎn)換


  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')
  #如果報(bào)錯(cuò):Please use HDF reader for matlab v7.3 files
  #改為下一種方式讀取
  import h5py
  mat=h5py.File('yourfile.mat')
  #mat文件里可能有多個(gè)cell,各對(duì)應(yīng)著一個(gè)dataset
  #可以用keys方法查看cell的名字,現(xiàn)在要用list(mat.keys()),
  #另外,讀取要用data=mat.get('名字'),然后可以再用Numpy轉(zhuǎn)為array
  print(mat.keys())
  #可以用values方法查看各個(gè)cell的信息
  print(mat.values())
  #可以用shape查看維度信息
  print(mat['your_dataset_name'].shape)
  #注意,這里看到的shape信息與你在matlab打開的不同
  #這里的矩陣是matlab打開時(shí)矩陣的轉(zhuǎn)置
  #所以,我們需要將它轉(zhuǎn)置回來
  mat_t=np.transpose(mat['your_dataset_name'])
  #mat_t是numpy.ndarray格式
  #再將其存為npy格式文件
  np.save('yourfile.npy',mat_t)


  npy文件與mat文件的保存與讀取


  除了常用的csv文件和excel文件之外,我們還可以通過PY把數(shù)據(jù)保存文npy文件格式和mat文件格式。


  1.npy文件


  npy即numpy對(duì)應(yīng)的文件格式,關(guān)于其保存使用的是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))

0.png

  保存文件:


  如圖,矩陣和numpy數(shù)組都支持以npy文件類型保存。


 np.save('a.npy',a)
  np.save('b.npy',b)

1.png

  讀取文件


 data1=np.load('a.npy')
  data2=np.load('b.npy')
  print(data1)
  print(type(data1))
  print("=================================")
  print(data2)
  print(type(data2))

2.png

  2.mat文件


  保存為mat文件依賴于scipy庫中的scipy.io.savemat()方法,讀取則需要用到scipy.io.loadmat()方法。


  保存時(shí),不僅僅需要傳入變量,還需要將該變量的類型一并以字典的形式傳入,一樣支持numpy數(shù)組和矩陣。


  具體示例如下:


  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})
  讀取數(shù)據(jù)
  data1=io.loadmat('a.mat')
  print(data1)
  print(type(data1))
  print("=================================")
  data2=io.loadmat('b.mat')
  print(data2)
  print(type(data2))

4.png

  如圖,數(shù)據(jù)成功被讀取。但是讀取的結(jié)果是一個(gè)字典,如果需要進(jìn)一步讀取到數(shù)據(jù),則需要根據(jù)鍵名將其取出:


 print(data1['matrix'])
  print(type(data1['matrix']))
  print("=================================")
  print(data2['array'])
  print(type(data2['array']))

5.png

  以上就是小編為大家總結(jié)的相關(guān)知識(shí),希望可以為各位讀者帶來更多的幫助。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/127793.html

相關(guān)文章

  • 聊聊 Container 的實(shí)現(xiàn)

    摘要:原生實(shí)現(xiàn)只存在于渲染引擎,原生是不存在的。假設(shè)有以下的代碼包括了,換種說法是劃分在同一組。于是,實(shí)現(xiàn)了一群粒子做同一件事其實(shí)就是實(shí)現(xiàn)了原生下的容器。不過,容器除了嵌套行為,它還有并列的行為兄弟容器。當(dāng)作一次記憶加深的過程。 查了一下有道: Containern. 集裝箱;容器 DisplayObject 實(shí)例分類 我目前用到過的 DisplayObject 有5種:Bitmap, Sh...

    mudiyouyou 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<