1 hdf5格式使用方法
1.1 hdf5文件介绍
一个HDF5文件是一种存放两类对象的容器:dataset和group. Dataset是类似于数组的数据集,而group是类似文件夹一样的容器,存放dataset和其他group。在使用h5py的时候需要牢记一句话:groups类比词典,dataset类比Numpy中的数组。
HDF5的dataset虽然与Numpy的数组在接口上很相近,但是支持更多对外透明的存储特征,如数据压缩,误差检测,分块传输。
1.2 hdf5数据的创建
由hdf5文件简介可知道,hdf5文件包含两部分,group和dataset。很直观的类比group就是文件夹,dataset就是文件夹里面的数据,而我们要引用文件夹就好比词典用法,我们要引用数据就好比数组用法。
创建group和dataset分别为create_group;create_dataset
假设我们要创建一个名字为subgroup的group,subgroup里面包含一个名为subsub的group和名为data1的数据;在subsub中包含名为data2的数据。示意图如下
import numpy as np
import h5py
"""
create_dataset :create dataset
create_group :create group
"""
data1 = np.arange(50)
data2 = np.arange(100)
# h5py.File(filename,’w’) w表示写入。这句类似 f = h5py.File(‘test.h5’,’w’)
with h5py.File('test.h5','w') as f:
subgroup = f.create_group('subgroup')
subgroup.create_dataset('data1',data=data1)
subsub = subgroup.create_group('subsub')
subsub.create_dataset('data2',data=data2)
1.3 hdf5数据读取
以1.2中保存的test.h5数据作要读取的数据。
1.打开h5文件
import h5py
f = h5py.File('test.h5','r') # ‘r’ 表示读取
2.查看h5文件里面结构
def printname(name):
print(name)
f.visit(prtname)
输出结构图如下:
subgroup
subgroup/data1
subgroup/subsub
subgroup/subsub/data2
可以看到subgrop下有数据data1
subsub下有数据data2
3.取出数据
取数据,例如要取出data1
subgroup = f[‘sobgroup’]
data1 = subgroup[‘data1’]
## 取出data2
subsub = subgroup[‘subsub’]
data2 = subsub[‘data2’]
完整代码如下:
with h5py.File(filename,'r') as f:
def prtname(name):
print(name)
f.visit(prtname)
subgroup = f['subgroup']
subsub = subgroup['subsub']
data1 = subgroup['data1']
data2 = subsub['data2']
# print(dset)
print("data1 name:",data1.name,"data2 name",data2.name)
print("data1 shape:",data1.shape,"data2 shape:",data2.shape)
print("data1 dtype:",data1.dtype,"data2 dtype:",data2.dtype)
print("data1:",data1[:],"data2:",data2[:])
————————————————
版权声明:本文为CSDN博主「lai_cheng」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lai_cheng/article/details/84644773