HDF5文件如何利用Python实现存储或读取

  介绍

本篇文章给大家分享的是有关HDF5文件如何利用Python实现存储或读取,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

<强> HDF5简介

HDF(分层数据格式)指一种为存储和处理大容量科学数据设计的文件格式及相应库文件.HDF最早由美国国家超级计算应用中心的机子开发,目前在非盈利组织HDF小组维护下继续发展。当前流行的版本是HDF5.HDF5拥有一系列的优异特性,使其特别适合进行大量科学数据的存储和操作,如它支持非常多的数据类型、灵活,通用,跨平台,可扩展,高效的I/O性能,支持几乎无限量(高达EB)的单文件存储等。

<强> HDF5结构

HDF5文件一般以.h6或者.hdf5作为后缀名,需要专门的软件才能打开预览文件的内容.hdf5文件结构中有两个主要目标:组织和数据集。

组就类似于文件夹,每个HDF5文件其实就是根目录(根)组# 39;/& # 39;可以看成目录的容器,其中可以包含一个或多个数据集及其它的群体。

数据集类似于NumPy中的数组阵列,可以当作数组的数据集合。

每个数据集可以分成两部分:原始数据(生)数据值和元数据的元数据(数据集描述和提供其他数据信息=https://www.yisu.com/zixun/>原始数据)。

 

从上面的结构中可以看出:

    <李> Dataspace给出原始数据的秩(排名)和维度(维度) <李>数据类型给出数据类型 <李>属性说明该数据集的分块储存以及压缩情况李 <>李分块:更好的访问时间的子集;李李可伸长的 <>分块,压缩:提高存储效率,传输速度 <李>属性为该数据集的其他自定义属性
      李,

整个HDF5文件的结构如下所示:

 # !/usr/bin/Python
  # - * -编码:utf - 8 - *
  #
  #由WW>进口h6py
  f=h6py.File (“myh6py.hdf5",“w")
  # deset1是数据集的名字,(20日)代表数据集的形状,我代表的是数据集的元素类型
  d1=f.create_dataset (“dset1"(20日)& # 39;我# 39;)
  关键在f.keys ():
  打印(关键)
  打印(f(例子). name)
  打印(f[主要].shape)
  打印(f(例子)value) 

输出:

dset1
/dset1
(20日)
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

赋值

进口h6py
  进口numpy np
  f=h6py.File (“myh6py.hdf5",“w")
  
  d1=f.create_dataset (“dset1"(20日)& # 39;我# 39;)
  #赋值
  d1 […]=np.arange (20)
  #或者我们可以直接按照下面的方式创建数据集并赋值
  f (“dset2")=np.arange (15)
  
  关键在f.keys ():
  打印(f(例子). name)
  打印(f(例子)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 12 13 14]

创建组

进口h6py
  进口numpy np
  f=h6py.File (“myh6py.hdf5",“w")
  
  #创建一个名字为酒吧的组
  g1=f.create_group (“bar")
  
  #在酒吧这个组里面分别创建名字为dset1, dset2的数据集并赋值。
  g1 [“dset1"]=np.arange (10)
  g1 (“dset2")=np.arange (12) .reshape ((3, 4))
  
  关键在g1.keys ():
  print (g1(例子). name)
  打印(g1(例子)value) 

HDF5文件如何利用Python实现存储或读取