日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python 笔记:h5py

發(fā)布時(shí)間:2023/12/9 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 笔记:h5py 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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'] #10

4 讀取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)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。