美文网首页
HDF5数据格式读写

HDF5数据格式读写

作者: 温室寻荒凉 | 来源:发表于2019-11-19 21:27 被阅读0次

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

相关文章

网友评论

      本文标题:HDF5数据格式读写

      本文链接:https://www.haomeiwen.com/subject/tdngictx.html