python寫(xiě)入和讀取h5、pkl、mat 文件

python中使用h5py對(duì)HDF5文件進(jìn)行操作。
1、創(chuàng)建文件和數(shù)據(jù)集
import h5py
import numpy as np

HDF5的寫(xiě)入:

imgData = np.zeros((2,4))
f = h5py.File('HDF5_FILE.h5','w') #創(chuàng)建一個(gè)h5文件,文件指針是f
f['data'] = imgData #將數(shù)據(jù)寫(xiě)入文件的主鍵data下面
f['labels'] = np.array([1,2,3,4,5]) #將數(shù)據(jù)寫(xiě)入文件的主鍵labels下面
f.close() #關(guān)閉文件

HDF5的讀取:

f = h5py.File('HDF5_FILE.h5','r') #打開(kāi)h5文件

可以查看所有的主鍵

for key in f.keys():
print(f[key].name)
print(f[key].shape)
print(f[key].value)
輸出結(jié)果:
/data
(2, 4)
[[ 0. 0. 0. 0.]
[ 0. 0. 0. 0.]]
/labels
(5,)
[1 2 3 4 5]
Process finished with exit code 0


寫(xiě)入讀取pkl文件
1)字典類型:
import pickle
dict_data={'name':["張三","李四"]}
with open("dict_data.pkl","wb") as fo:
pickle.dump(dict_data,fo)
with open("dict_data","rb") as fo:
dict_data=pickle.load(fo,encoding='bytes')
print(dict_data.keys())
print(dict_data)
print(dict_data["name"])
結(jié)果如下:
dict_keys(['name'])
{'name': ['張三', '李四']}
['張三', '李四']
2)列表類型
import pickle
list_data=["張三","李四"]
with open ("list_data","wb") as fo:
pickle.dump(list_data,fo)

with open("list_data","rb") as fo:
pickle.load(fo,encoding='bytes')
print(list_data)
print(list_data.keys())
pirnt(list_data["name"])


mat文件
mat數(shù)據(jù)格式是Matlab的數(shù)據(jù)存儲(chǔ)的標(biāo)準(zhǔn)格式。在Matlab中主要使用load()函數(shù)導(dǎo)入一個(gè)mat文件,使用save()函數(shù)保存一個(gè)mat文件。對(duì)于文件data.mat:
load(‘data.mat')
save('data_1.mat','A')
其中'A’表示要保存的內(nèi)容。
在python讀取mat文件:
1、讀取文件:
import scipy.io as scio
file1='E://data.mat'
data=scio.loadmat(file1)
注意,讀取出來(lái)的data是字典格式,可以通過(guò)函數(shù)type(data)查看。
print type(data)
結(jié)果顯示
<type 'dict'>
找到mat文件中的矩陣:
print data['A']
結(jié)果顯示

image.png

格式為:
<type 'numpy.ndarray'>
即為numpy中的矩陣格式。
2、保存文件
將這里的data['A']矩陣重新保存到一個(gè)新的文件dataNew.mat中:
dataNew = 'E://dataNew.mat'
scio.savemat(dataNew, {'A':data['A']})
參考:
把數(shù)據(jù)寫(xiě)入pkl文件,讀取pkl文件
python讀取文件——python讀取和保存mat文件

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容