h5py入门

时间:2020-04-17
本文章向大家介绍h5py入门,主要包括h5py入门使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

 概念理解:

HDF5是存放两类对象的容器:@ 数据集datasets(类似于数组类的数据集合---numpy);@ 组groups(类似于文件夹的容器,可以储存datasets和其它groups---类似于列表(key和value))。

使用h5py基本方法:

1. 创建一个h5py文件

1 import h5py
2 #要是读取文件的话,就把w换成r
3 f=h5py.File("myh5py.hdf5","w")

在当前目录下会生成一个myh5py.hdf5文件

2. 创建dataset数据集

 1 dset = f.create_dataset("mydataset", (20,), dtype='i')   # mydataset数据集的名字;(100,)数据集的shape;i数据集元素类型
 2 for key in f.keys():
 3     print(key)
 4     print(f[key].name)
 5     print(f[key].shape)
 6     print(f[key].value)

输出:mydataset
   /mydataset
  (20,)
  [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

赋值方法: 

import h5py
import numpy as np
f=h5py.File("myh5py.hdf5","w")
#分别创建dset1,dset2,dset3这三个数据集
a=np.arange(20)
d1=f.create_dataset("dset1",data=a)
d2=f.create_dataset("dset2",(3,4),'i')

d2[...]=np.arange(12).reshape((3,4))

f["dset3"]=np.arange(15)
for key in f.keys():
    print(f[key].name)
    print(f[key].value)
输出:
/dset1
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19]
/dset2
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
/dset3
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14]

 3. 创建group组

 1 import h5py
 2 import numpy as np
 3 f=h5py.File("myh5py.hdf5","w")
 4 
 5 #创建一个名字为bar的组
 6 g1=f.create_group("bar")
 7 
 8 #在bar这个组里面分别创建name为dset1,dset2的数据集并赋值。
 9 g1["dset1"]=np.arange(10)
10 g1["dset2"]=np.arange(12).reshape((3,4))
11 
12 for key in g1.keys():
13     print(g1[key].name)
14     print(g1[key].value)

输出:
/bar/dset1
[0 1 2 3 4 5 6 7 8 9]
/bar/dset2
[[ 0  1  2  3]
[ 4  5  6  7]
[ 8  9 10 11]]

原文地址:https://www.cnblogs.com/AmeliaWu2019/p/12720738.html