python 笔记:h5py
0 h5py文件
一個(gè)h5py文件是 “dataset” 和 “group” 二合一的容器。
1. dataset ——> 可以類比成ndarray,包含了一些數(shù)據(jù)
2. group ——>可以類比成字典,?包含了其它 dataset 和 其它 group
我們可以把h5py文件類比成“文件夾”,以樹(shù)形結(jié)構(gòu)存儲(chǔ)group和dataset
1 創(chuàng)建一個(gè)h5py文件
import h5py import numpy as np#創(chuàng)建一個(gè)h5py文件 f = h5py.File("mytestfile.hdf5", "w") #和python打開(kāi)文件的方式一樣,可以有'w',有'a'f.name #'/'#創(chuàng)建一個(gè)dataset dset = f.create_dataset("mydataset", data=np.random.random((3,3))) #這樣的創(chuàng)建方式就會(huì)在根目錄f下創(chuàng)建一個(gè)dataset,內(nèi)容為data的內(nèi)容dset.name #'/mydataset' #即dset的絕對(duì)路徑在h5py文件中,任何的group對(duì)象也可以有create_dataset和create_group方法
grp = f.create_group("subgroup") grp.name #'/subgroup'dset2 = grp.create_dataset("mydataset", data=np.random.random((3,3))) dset2.name #'/subgroup/mydataset' #在grp上創(chuàng)建一個(gè)dataset?當(dāng)然,我們也不需要一步一步把中間的group創(chuàng)建出來(lái),直接指定一個(gè)完整的目錄也是ok的
dset3=f.create_dataset("grp3/mydataset", data=np.random.random((3,3))) dset3.name #'/grp3/mydataset'?可以看到里面現(xiàn)在有三個(gè)group了
for i in f:print(i)''' grp3 mydataset subgroup '''也可以用in來(lái)判斷一個(gè)dataset或者一個(gè)group是否存在
'grp3' in f, 'grp2' in f #(True, False)#甚至完整路徑都是可以的 '/subgroup/mydataset' in f #True?2 打印完整dataset和group路徑
像前面的print只會(huì)返回他的直接成員,如果想要遍歷整個(gè)文件的話,可以使用group方法visit,visititems
f.visit(print) ''' grp3 grp3/mydataset mydataset subgroup subgroup/mydataset '''f.visititems(print) ''' grp3 <HDF5 group "/grp3" (1 members)> grp3/mydataset <HDF5 dataset "mydataset": shape (3, 3), type "<f8"> mydataset <HDF5 dataset "mydataset": shape (3, 3), type "<f8"> subgroup <HDF5 group "/subgroup" (1 members)> subgroup/mydataset <HDF5 dataset "mydataset": shape (3, 3), type "<f8"> '''3 數(shù)據(jù)屬性
????????HDF5的一個(gè)最好的特點(diǎn)是,你可以在它描述的數(shù)據(jù)旁邊存儲(chǔ)元數(shù)據(jù)。所有的group和dataset都支持附加的名為屬性的數(shù)據(jù)位。
????????屬性是通過(guò)attrs代理對(duì)象來(lái)訪問(wèn)的,它同樣實(shí)現(xiàn)了字典接口。
dset2.attrs['num']=10 dset2.attrs['num'] #104 讀取HDF
f = h5py.File('mytestfile.hdf5', 'r')可以用前面的visit判斷有哪些group,哪些dataset
查看某一個(gè)dataset的信息
f['mydataset'] #<HDF5 dataset "mydataset": shape (3, 3), type "<f8">f['mydataset'][:] ''' array([[0.63732368, 0.358404 , 0.10496838],[0.4456806 , 0.91168004, 0.01802787],[0.57025919, 0.67295068, 0.87238499]]) '''參考資料:Quick Start Guide — h5py 3.6.0 documentation
python h5py詳解_will-wil的博客-CSDN博客_h5py
總結(jié)
以上是生活随笔為你收集整理的python 笔记:h5py的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: sentinel 不显示项目_Senti
- 下一篇: python 会增加内存吗,Python