欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python讀取及保存mat文件的注意事項(xiàng)說(shuō)明

 更新時(shí)間:2022年12月14日 09:47:11   作者:向bug低頭。  
這篇文章主要介紹了Python讀取及保存mat文件的注意事項(xiàng)說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Python讀取及保存mat文件

在說(shuō)明python讀取mat文件之前需要強(qiáng)調(diào)2點(diǎn):

讀取的時(shí)候需要注意讀出來(lái)的shape是什么樣的,是否符合自己的預(yù)期,如果shape不是自己預(yù)期的那樣,就需要用np.transpose(mat, [x, x, x])進(jìn)行修正。

讀取的時(shí)候需要注意取值范圍,也就是最大值,因?yàn)樵谧鳛橛?xùn)練數(shù)據(jù)的時(shí)候需要首先進(jìn)行歸一化(避免無(wú)法收斂),而不同的mat文件的最大值是不一樣的,有0-1、0-255、0-212、0-216。

python實(shí)現(xiàn)mat文件的讀取主要有3個(gè)函數(shù):

import scipy.io as io
imgpath = r"E:\shujuji\CAVE\CAVE_mat\balloons_ms.mat"
mat = io.loadmat(imgpath)['rad']
import h5py
imgpath = r"E:\shujuji\CAVE\CAVE_mat\balloons_ms.mat"
mat = h5py.File(imgpath, 'r')['rad']
import hdf5storage as hdf5
imgpath = r"E:\shujuji\CAVE\CAVE_mat\balloons_ms.mat"
mat = hdf5.loadmat(imgpath)['rad']

這里推薦使用第三種,也就是使用hdf5storage庫(kù)進(jìn)行讀取,原因在于前兩種與保存該mat文件時(shí)所用matlab的版本有關(guān)(7.3),也就是說(shuō)一個(gè)mat文件要么能用scipy.io讀,要么能用h5py能讀。

而hdf5storage就不存在這個(gè)問(wèn)題,一般的mat文件都能讀取。

再就是使用不同函數(shù)讀取時(shí)的shape不一致,容易搞亂,使用hdf5storage讀取的shape和cv2.imread()讀取RGB時(shí)的shape一致,方便處理。

python實(shí)現(xiàn)mat文件的保存同樣建議使用hdf5storage(好像scipy也可):

hdf5storage.savemat(r"output\balloons_ms.mat", {'cube': mat}, format='7.3')
hdf5storage.savemat(r"output\balloons_ms.mat", {'rgb': rgb}, format='7.3')

使用hdf5storage保存時(shí)mat的shape是什么樣的,用它讀出來(lái)也就是什么樣的,比較方便。

所以建議讀取和保存都使用hdf5storage。

Python讀取嵌套.mat文件

從網(wǎng)上下載的數(shù)據(jù)集可能是保存為.mat文件的,保存著很多圖片

我們先來(lái)看一下本次實(shí)驗(yàn)所需要的.mat文件,主要結(jié)構(gòu)體為dataset,包含3個(gè)字段,分別是train,test,mapping

其中test是11的


在這里插入圖片描述

train和test下分別還有三個(gè)字段,分別是images,labels,writers

其中test下的labels是208001的


在這里插入圖片描述

1.首先我們先加載對(duì)應(yīng)的模塊,并用這個(gè)模塊加載對(duì)應(yīng)的.mat文件

from scipy.io import loadmat
X = loadmat(r"letters.mat")

注:這里的路徑需要修改

2.然后讀取結(jié)構(gòu)體dataset

data_all = X['dataset'] 

3.讀取結(jié)構(gòu)體下test下三個(gè)字段

#此處僅讀取嵌套結(jié)構(gòu)體下的test,還不是存儲(chǔ)的數(shù)據(jù)
data = data_all[0,0]['test']
print('data.shape',data.shape)
 

#此處讀取真正存儲(chǔ)數(shù)據(jù)
data_labels = data[0,0]['labels']
print('data_labels.shape',data_labels.shape)

結(jié)果為:


在這里插入圖片描述

證明正確讀取嵌套結(jié)構(gòu)體的.mat文件

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python 使用pandas實(shí)現(xiàn)查詢和統(tǒng)計(jì)示例詳解

    Python 使用pandas實(shí)現(xiàn)查詢和統(tǒng)計(jì)示例詳解

    這篇文章主要為大家介紹了Python 使用pandas實(shí)現(xiàn)查詢和統(tǒng)計(jì)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Python中.py程序在CMD控制臺(tái)以指定虛擬環(huán)境運(yùn)行

    Python中.py程序在CMD控制臺(tái)以指定虛擬環(huán)境運(yùn)行

    本文主要介紹了Python中.py程序在CMD控制臺(tái)以指定虛擬環(huán)境運(yùn)行,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Python淘寶或京東等秒殺搶購(gòu)腳本實(shí)現(xiàn)(秒殺腳本)

    Python淘寶或京東等秒殺搶購(gòu)腳本實(shí)現(xiàn)(秒殺腳本)

    本篇文章主要介紹了Python 通過(guò)selenium實(shí)現(xiàn)毫秒級(jí)自動(dòng)搶購(gòu)的示例代碼,通過(guò)掃碼登錄即可自動(dòng)完成一系列操作,搶購(gòu)時(shí)間精確至毫秒,可搶加購(gòu)物車(chē)等待時(shí)間結(jié)算的,也可以搶聚劃算、火車(chē)票等的商品,感興趣的朋友跟隨小編一起看看吧
    2022-10-10
  • Python機(jī)器學(xué)習(xí)應(yīng)用之基于BP神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)篇詳解

    Python機(jī)器學(xué)習(xí)應(yīng)用之基于BP神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)篇詳解

    BP(back?propagation)神經(jīng)網(wǎng)絡(luò)是1986年由Rumelhart和McClelland為首的科學(xué)家提出的概念,是一種按照誤差逆向傳播算法訓(xùn)練的多層前饋神經(jīng)網(wǎng)絡(luò),是應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一
    2022-01-01
  • pandas DataFrame 交集并集補(bǔ)集的實(shí)現(xiàn)

    pandas DataFrame 交集并集補(bǔ)集的實(shí)現(xiàn)

    這篇文章主要介紹了pandas DataFrame 交集并集補(bǔ)集的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Python實(shí)現(xiàn)GUI學(xué)生信息管理系統(tǒng)

    Python實(shí)現(xiàn)GUI學(xué)生信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)GUI學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Python機(jī)器學(xué)習(xí)應(yīng)用之基于天氣數(shù)據(jù)集的XGBoost分類(lèi)篇解讀

    Python機(jī)器學(xué)習(xí)應(yīng)用之基于天氣數(shù)據(jù)集的XGBoost分類(lèi)篇解讀

    XGBoost是一個(gè)優(yōu)化的分布式梯度增強(qiáng)庫(kù),旨在實(shí)現(xiàn)高效,靈活和便攜。它在?Gradient?Boosting?框架下實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法。XGBoost提供并行樹(shù)提升(也稱為GBDT,GBM),可以快速準(zhǔn)確地解決許多數(shù)據(jù)科學(xué)問(wèn)題
    2022-01-01
  • Python幫你微信頭像任意添加裝飾別再@微信官方了

    Python幫你微信頭像任意添加裝飾別再@微信官方了

    昨天朋友圈刷爆了@微信官方的梗,從起初的為頭像添加國(guó)旗,到最后的各種Book思議的需求…而我呢?下面跟隨小編一起學(xué)習(xí)Python幫你微信頭像任意添加裝飾別再@微信官方了,感興趣的朋友一起看看吧
    2019-09-09
  • Python sklearn CountVectorizer使用詳解

    Python sklearn CountVectorizer使用詳解

    這篇文章主要介紹了Python_sklearn_CountVectorizer使用詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • Python虛擬環(huán)境遷移的實(shí)現(xiàn)

    Python虛擬環(huán)境遷移的實(shí)現(xiàn)

    本文主要介紹了Python虛擬環(huán)境遷移的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03

最新評(píng)論