简单入门用法,记录一下
简介
h5py文件是存放两类对象的容器,数据集(dataset)和组(group):
- dataset类似数组类的数据集合,和numpy的数组差不多
- group是像文件夹一样的容器,它好比python中的字典,有键(key)和值(value)。group中可以存放dataset或者其他的group。”键”就是组成员的名称,”值”就是组成员对象本身(组或者数据集)。
创建h5py文件
import h5py
f=h5py.File("myh5py.hdf5","w")
|
创建dataset数据集
创建了一个只有20个整数的数据集,但是没有赋值所以为0
import h5py
f=h5py.File("myh5py.hdf5", "w")
d1=f.create_dataset("dset1", (20,), 'i') for key in f.keys(): print(key) print(f[key].name) print(f[key].shape) print(f[key][:])
|

赋值:
d1[...]=np.arange(20)
f["dset2"]=np.arange(15)
|

如果我们有现成的numpy数组,那么可以在创建数据集的时候就赋值,这个时候就不必指定数据的类型和形状了,只需要把数组名传给参数data:d1=f.create_dataset("dset1",data=a)
创建group
import h5py import numpy as np
f=h5py.File("myh5py.hdf5","w")
g1=f.create_group("group1")
g1["dset1"]=np.arange(10) g1["dset2"]=np.arange(12).reshape((3,4))
for key in g1.keys(): print(g1[key].name) print(g1[key][:])
|

查看结构:
import h5py import numpy as np
f = h5py.File("myh5py.hdf5","w")
g1 = f.create_group("group1") g2 = f.create_group("group2")
dst = f.create_dataset('dst', data=np.random.normal(2, 1, 10))
c1 = g1.create_group("car1") d1 = g1.create_dataset("dset1" , data=np.arange(10))
print(".............") for key in f.keys(): print(f[key].name)
print(".............") for key in g1.keys(): print(g1[key].name)
print("===") print(c1.keys())
|
