小編寫這篇文章的目的,主要是給大家介紹關于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的名字,現(xiàn)在要用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把數(shù)據(jù)保存文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數(shù)組都支持以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數(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))
如圖,數(shù)據(jù)成功被讀取。但是讀取的結果是一個字典,如果需要進一步讀取到數(shù)據(jù),則需要根據(jù)鍵名將其取出:
print(data1['matrix']) print(type(data1['matrix'])) print("=================================") print(data2['array']) print(type(data2['array']))
以上就是小編為大家總結的相關知識,希望可以為各位讀者帶來更多的幫助。
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/127793.html
摘要:原生實現(xiàn)只存在于渲染引擎,原生是不存在的。假設有以下的代碼包括了,換種說法是劃分在同一組。于是,實現(xiàn)了一群粒子做同一件事其實就是實現(xiàn)了原生下的容器。不過,容器除了嵌套行為,它還有并列的行為兄弟容器。當作一次記憶加深的過程。 查了一下有道: Containern. 集裝箱;容器 DisplayObject 實例分類 我目前用到過的 DisplayObject 有5種:Bitmap, Sh...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1982·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02