python 笔记:h5py
0 h5py文件
一個h5py文件是 “dataset” 和 “group” 二合一的容器。
1. dataset ——> 可以類比成ndarray,包含了一些數據
2. group ——>可以類比成字典,?包含了其它 dataset 和 其它 group
我們可以把h5py文件類比成“文件夾”,以樹形結構存儲group和dataset
1 創建一個h5py文件
import h5py import numpy as np#創建一個h5py文件 f = h5py.File("mytestfile.hdf5", "w") #和python打開文件的方式一樣,可以有'w',有'a'f.name #'/'#創建一個dataset dset = f.create_dataset("mydataset", data=np.random.random((3,3))) #這樣的創建方式就會在根目錄f下創建一個dataset,內容為data的內容dset.name #'/mydataset' #即dset的絕對路徑在h5py文件中,任何的group對象也可以有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上創建一個dataset?當然,我們也不需要一步一步把中間的group創建出來,直接指定一個完整的目錄也是ok的
dset3=f.create_dataset("grp3/mydataset", data=np.random.random((3,3))) dset3.name #'/grp3/mydataset'?可以看到里面現在有三個group了
for i in f:print(i)''' grp3 mydataset subgroup '''也可以用in來判斷一個dataset或者一個group是否存在
'grp3' in f, 'grp2' in f #(True, False)#甚至完整路徑都是可以的 '/subgroup/mydataset' in f #True?2 打印完整dataset和group路徑
像前面的print只會返回他的直接成員,如果想要遍歷整個文件的話,可以使用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 數據屬性
????????HDF5的一個最好的特點是,你可以在它描述的數據旁邊存儲元數據。所有的group和dataset都支持附加的名為屬性的數據位。
????????屬性是通過attrs代理對象來訪問的,它同樣實現了字典接口。
dset2.attrs['num']=10 dset2.attrs['num'] #104 讀取HDF
f = h5py.File('mytestfile.hdf5', 'r')可以用前面的visit判斷有哪些group,哪些dataset
查看某一個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
總結
以上是生活随笔為你收集整理的python 笔记:h5py的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sentinel 不显示项目_Senti
- 下一篇: 摄影技巧12法