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

Python處理mat文件的三種方式小結(jié)

 更新時(shí)間:2022年05月11日 09:57:17   作者:石頭之心  
這篇文章主要介紹了Python處理mat文件的三種方式小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

處理mat文件的三種方式

讀書(shū)的時(shí)候,處理數(shù)據(jù)都是采用matlab,但畢業(yè)后當(dāng)了程序員,matlab從此在自己的電腦上消失了(安裝包太大,還要license,啟動(dòng)也好慢,不符合程序員的需求)。

但是最近公司仿真的數(shù)據(jù)是以matlab的.mat格式存儲(chǔ)的,需要讀取出來(lái)處理,那就找找python相關(guān)的庫(kù)吧,沒(méi)有python干不了的活?。?!

mat文件存儲(chǔ)了matlab中變量數(shù)據(jù),因此,python讀出的mat數(shù)據(jù)是以k-v形式存儲(chǔ)在字典里,key是變量名,value是數(shù)據(jù)內(nèi)容:

scipy

最先想到的的是scipy工具

import scipy.io as scio
data = scio.loadmat(‘example.mat')
data[‘loss']

但是讀取有的.mat文件的時(shí),會(huì)拋出異常(v7.3版本):

raise NotImplementedError('Please use HDF reader for matlab v7.3 files')NotImplementedError: Please use HDF reader for matlab v7.3 files

h5py

遇到上面的問(wèn)題,就需要采用h5py庫(kù)了:

import h5py
data=h5py.loadmat('example.mat') ??
data['loss'][:]

但是這樣讀出來(lái)的是file格式,調(diào)試的時(shí)候都很難知道key是什么,取數(shù)據(jù)可以按照key來(lái)取,但是前提是需要知道key值,不方便獨(dú)立調(diào)試。

mat73

今天的主角登場(chǎng),個(gè)人覺(jué)得mat73兼容性最好,幾乎所有的mat文件都能成功讀取,而且讀取的結(jié)果是k-v的字典,很便于后續(xù)處理:

import mat73
data=mat73.loadmat(path) ??
data['loss']

mat4py

不推薦,兼容性較差,可能是沒(méi)有后續(xù)更新。

總結(jié):總的來(lái)說(shuō),個(gè)人比較推薦使用mat73,兼容各種版本的mat文件,其次可以比較清晰的看到mat文件中保存數(shù)據(jù)的key值,便于后續(xù)的提取。 

python操作.mat文件

在win10中,打開(kāi)

ITC_VD 數(shù)據(jù)集格式,

結(jié)果在訓(xùn)練集ITC_VD_Training_Testing_set中,看到標(biāo)簽文件全是快捷方式,

選中一個(gè)文件,右鍵 屬性,看到:

Microsoft Access Table Shortcut (.mat)

查了半天,發(fā)現(xiàn)是.mat 的 matlab格式,

python讀取.mat格式

from scipy.io import loadmat??
m = loadmat(r"E:\data\yolov5_dbb\ITC_VD_Training_Testing_set\Training\GT/00064.mat")
?
daaa=m.keys()
print(daaa)
?
print(m['x00064'])

.mat 文件里的數(shù)據(jù)結(jié)構(gòu)是 dict ,所以取值要按照 key:value 的形式:

上面讀出來(lái)的數(shù)據(jù)是 ndarray 類型,為了方便數(shù)據(jù)的展示,我們可以將其轉(zhuǎn)換為,pandas的DataFrame:

import pandas as pd
?
df = pd.DataFrame(m['H_BETA'])
?
df.head()

mat轉(zhuǎn)圖片

import glob?
import cv2
import numpy as np
?
r_path=r'C:\File\2021-11'
?
files=glob.glob(r_path+"/*.mat")
from scipy.io import loadmat?
?
# 數(shù)據(jù)矩陣轉(zhuǎn)圖片的函數(shù)
def MatrixToImage(data):
? ? # data = data * 255
? ? new_im = data.astype(np.uint8)
? ? return new_im?
?
for file in files:
?
? ? if "2018" in file:
? ? ? ? continue
? ? print(file)
? ? m = loadmat(file)
?
? ? daaa = m.keys()
?
? ? data=m['groundTruth']
?
? ? print(data)
?
? ? new_im = MatrixToImage(data)
? ? cv2.imshow("asdf",new_im)
? ? cv2.waitKey()
?
? ? # print(data)

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

相關(guān)文章

  • 關(guān)于Python 列表的索引取值問(wèn)題

    關(guān)于Python 列表的索引取值問(wèn)題

    這篇文章主要介紹了Python 列表的索引取值,本節(jié)重點(diǎn)掌握多次索引取值的語(yǔ)法:列表[索引][索引],結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • python使用循環(huán)打印所有三位數(shù)水仙花數(shù)的實(shí)例

    python使用循環(huán)打印所有三位數(shù)水仙花數(shù)的實(shí)例

    今天小編就為大家分享一篇python使用循環(huán)打印所有三位數(shù)水仙花數(shù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • Pandas 按索引合并數(shù)據(jù)集的方法

    Pandas 按索引合并數(shù)據(jù)集的方法

    今天小編就為大家分享一篇Pandas 按索引合并數(shù)據(jù)集的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • Pycharm 如何連接遠(yuǎn)程服務(wù)器并debug調(diào)試

    Pycharm 如何連接遠(yuǎn)程服務(wù)器并debug調(diào)試

    本文主要介紹了Pycharm 如何連接遠(yuǎn)程服務(wù)器并debug調(diào)試,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Python Paramiko模塊的使用實(shí)際案例

    Python Paramiko模塊的使用實(shí)際案例

    這篇文章主要介紹了Python Paramiko模塊的使用實(shí)際案例,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • 解決Jupyter Notebook開(kāi)始菜單欄Anaconda下消失的問(wèn)題

    解決Jupyter Notebook開(kāi)始菜單欄Anaconda下消失的問(wèn)題

    這篇文章主要介紹了解決Jupyter Notebook開(kāi)始菜單欄Anaconda下消失的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • Mac上Python使用ffmpeg完美解決方案(避坑必看!)

    Mac上Python使用ffmpeg完美解決方案(避坑必看!)

    ffmpeg是一個(gè)強(qiáng)大的開(kāi)源命令行多媒體處理工具,下面這篇文章主要給大家介紹了關(guān)于Mac上Python使用ffmpeg完美解決方案的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • 解決anaconda安裝pytorch報(bào)錯(cuò)找不到包的問(wèn)題

    解決anaconda安裝pytorch報(bào)錯(cuò)找不到包的問(wèn)題

    這篇文章主要介紹了解決anaconda安裝pytorch報(bào)錯(cuò)找不到包的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • 利用Python生成Excel炫酷圖表

    利用Python生成Excel炫酷圖表

    XlsxWriter是一個(gè)用來(lái)寫Excel2007和xlsx文件格式的python模塊。它可以用來(lái)寫文本、數(shù)字、公式并支持單元格格式化、圖片、圖表、文檔配置、自動(dòng)過(guò)濾等特性。本文將用這個(gè)模塊生成酷炫的Excel圖表,需要的可以參考一下
    2022-02-02
  • Python實(shí)現(xiàn)SVM支持向量機(jī)的示例代碼

    Python實(shí)現(xiàn)SVM支持向量機(jī)的示例代碼

    SVM 的目的是在數(shù)據(jù)集中找到一條最佳分隔超平面,使得在這個(gè)超平面兩側(cè)的數(shù)據(jù)分別屬于不同的類別,且該超平面與最近的數(shù)據(jù)點(diǎn)之間的距離最大。本文將通過(guò)Python實(shí)現(xiàn)SVM支持向量機(jī),感興趣的可以了解一下
    2023-02-02

最新評(píng)論