HDF5-简介

article/2025/9/12 9:27:46

HDF(Hierarchical Data Format)是一种设计用于存储和组织大量数据的文件格式,最开始由美国国家超算中心研发,后来由一个非盈利组织HDF Group支持.HDF支持多种商业及非商业的软件平台,包括MATLAB、Java、Python、R和Julia等等,现在也提供了Spark.其版本包括了HDF4和现在大量用的HDF5,.

虽然HDF Group仍然维护和支持HDF4,但是其存在以下很大的局限性:

  • 支持太多的接口格式(图像、表格、数组),导致其API过于复杂
  • 只支持科学数据集对象的元数据描述,其余的接口格式都没有
  • 32-bit的地址索引导致其存储上限只有2GB
  • 库函数过时和过于复杂,不能有效地支持并行口的I/O,很难用于线程应用中。

下面将详细介绍HDF5的特性

HDF5的整体结构如下图所示,

这里写图片描述

一个HDF5文件可以被看作是一个(类Unix的文件系统层次结构)包含了各类不同的数据集,数据集可以是图像、表格,甚至是PDF文件和Excel.HDF5中的两大核心就是组结构数据集

组结构

熟悉Linux系统的,可以将这个组结构类似于Linux文件系统的目录层次结构,根目录再包含其他目录,节点目录里面存放相应的数据集,或者可以将组结构当做Python里面的嵌套字典结构,通过这样一个层次化的结构可以合理地将数据组织起来.可以从下面的Python代码运行中看出来,f作为得到的HDF5的文件对象,其实就是根目录,通过新建组就可以看出来.

>>>f = h5py.File("test.hdf5")
>>>subgroup = f.create_group("subgroup")
>>>subgroup
<HDF5 group"/subgroup" (0 members)>

数据集

HDF5数据集组织和包含原数据,以及自动和可选人工添加的关于数据描述的元数据.

下图来自HDF Group的官网,可以看出其中用于描述的元数据包括,Dataspaces、Datatypes、Properties和Attributes(可选).

这里写图片描述

Dataspaces

数据空间主要用于描述数据的分布情况,可以分类为无数据(NULL)、标量数据(scala)和数组,其中描述的维数(dimensions)可以是固定的,也可以是非固定的.数据空间描述的主要用途是,用于描述整个数据集的分布情况(这个应该是固定的描述),同时也用于当HDF5切片时,描述其切片的子集分布(通常来说,HDF5的切片操作类似于Numpy,但是它是在磁盘上进行操作)

Datatypes

数据类型用于描述HDF5数据集中单个数据元素的类型,在HDF5中数据类型可以被归类为:

  • 预定义数据类型
    通过HDF5创建的数据,其中又可以分为两类:

    • 标准数据类型:在所有支持的平台通用,其命名格式为架构名+编程类型名
      ,如H5T_IEEE_F32BE就是ARCH的架构,同时是标准的大端32位浮点类型.

    • 原生数据类型:通常用于简化读写的内存操作,在不同平台上不一定一样,如H5T_NATIVE_INT 就表示int(C)

  • 衍生数据类型

衍生数据类型的意思就是由预定义数据类型衍生而来,最直接的就是字符型就是预定义类型的一种,而字符串就属于衍生数据类型,即合成数据类型就是衍生数据类型,衍生数据类型还包括表格以及一些嵌套的类型.

这里写图片描述

Properties

特性元数据用于描述HDF5对象的特点,默认的特性描述可以通过使用 HDF5 Property List API进行修改.

这里写图片描述

Attributes

属性是可选的元数据,由用户人工指定,包含名称-值两个部分,注意不支持partial I/O operations,同时不能被压缩或扩展.

开发

Python里面有两个包都支持HDF5的开发,h5pyPyTables(基于HDF5并增加了数据集索引和额外的类型系统)

HDFView

HDF Group提供的用于HDF5文件打开和编辑可视化工具,基于Java开发的支持各大平台.

ODBC Connector

提供基于SQL访问HDF5文件的功能,但是貌似不是免费的,只提供了14天的试用期

HDF5 CONNECTOR FOR APACHE SPARK

现提供了通过Spark访问HDF5文件的访问器,但是是Beta版,还在开发中,可以试试当小白鼠.

后面会继续对HDF5总结更多的理解.

资料来源:
[1]. https://en.wikipedia.org/wiki/Hierarchical_Data_Format
[2]. 关于HDF文件的一点概述(HDF4,HDF5)
[3]. https://portal.hdfgroup.org/display/HDF5/Introduction+to+HDF5
[4]. 《Python和HDF5大数据应用》

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行许可。


http://chatgpt.dhexx.cn/article/P24fUxBS.shtml

相关文章

HDF5到底是什么

HDF5到底是什么 《Python和HDF 5大数据应用》——1.2 HDF5到底是什么-阿里云开发者社区 1.2 HDF5到底是什么 HDF5是一种存储相同类型数值的大数组的机制&#xff0c;适用于可被层次性组织且数据集需要被元数据标记的数据模型。 它跟SQL风格的关系型数据库区别相当大&…

HDF5快速上手全攻略

HDF5快速上手全攻略 1. HDF5简介 Hierarchical Data Format(HDF)是一种针对大量数据进行组织和存储的文件格式。经历了20多年的发展&#xff0c;HDF格式的最新版本是HDF5&#xff0c;它包含了数据模型&#xff0c;库&#xff0c;和文件格式标准。以其便捷有效&#xff0c;移植…

Macbook Pro笔记本双系统MacOS和Windows切换默认启动

一、开机切换 开机时&#xff0c;按住option键不要动&#xff0c;等待Macbook Pro出现以下界面&#xff0c;选择你想开机的系统即可。 &#xff08;BootCamp就是Windows&#xff09; 二、默认切换&#xff0c;这里分两种情况 1&#xff09;默认MacOS开机&#xff0c;切换到W…

笔记本双系统Windows10/Deepin15.11体验记录【Deepin15.11体验记录】第一天

笔记本双系统Windows10/Deepin15.11体验记录 【Deepin15.11体验记录】第一天 今天我试着将笔记本安装了第二个系统&#xff08;基于Linux的Deepin15.11系统&#xff09;&#xff0c;非常成功。之前接触过虚拟机里的Redhat Linux&#xff0c;但是那种是多年前的版本&#xff0…

华硕ROG枪神配置Ubuntu双系统

华硕ROG枪神配置Ubuntu双系统 最近笔记本刚到&#xff0c;华硕ROG枪神6plus&#xff0c;12900HRTX3060&#xff08;没错&#xff0c;最低配&#xff09;&#xff0c;想着配置一下Ubuntu系统&#xff0c; 但是网上没有相关参考教程&#xff0c;我自己在下面步骤4设置硬盘启动方…

各笔记本安装双系统遇到的问题

目录 联想Y9000P2023款安装ubuntu出现efi usb device has been blocked by the current security policy导致无法进入安装目录 ​编辑 Thinkpad p15 gen1安装双系统遇到的问题 回忆安装xubuntu20.04LTS出现的问题和解决办法&#xff1a; Thinkpad p15 gen1 合盖关机的设置…

苹果笔记本安装Win10双系统+分区教程《原创完整精华版》

苹果笔记本安装Win10双系统分区教程《完整精华版》 写在前面&#xff1a;1.此款笔记本已测试支持安装Win10 1909版本、1903版本。建议安装比较新的Win10版本。2.此教程是先装Win10系统&#xff0c;再进苹果系统分区。最初我想是先分区&#xff0c;再安装&#xff0c;可无论如何…

红米笔记本linux系统版本,小米笔记本安装Win10+Ubuntu16.04 LTS 双系统

安装Win10+Ubuntu16.04 LTS 双系统(持续更新:Ubuntu安装N卡驱动,续航+2小时) 原贴:http://bbs.xiaomi.cn/t-13391152 (来自小米社区玩机教程) 完成图: 目标:安装Win10 + Ubuntu16.04 LTS 双系统 电脑:小米Air 13.3 高配版 工具: 硬件:U盘(2G就够,镜像包解压后文件大小为1.…

dell笔记本安装Ubuntu20.04双系统+cuckoo布谷鸟沙箱

windows下安装Ubuntu20.04双系统cuckoo布谷鸟沙箱 本篇文章主要是在Ubuntu20.04系统上搭建cuckoo沙箱&#xff0c;之前曾尝试在VMware虚拟机里建立Ubuntu&#xff0c;然后再在Ubuntu虚拟机里安装vbox虚拟机&#xff0c;然后搭建沙箱&#xff0c;但是这种虚拟机里安装虚拟机的想…

戴尔笔记本安装双系统(win10+ubuntu20.04)避坑记录

戴尔笔记本安装双系统&#xff08;win10ubuntu20.04&#xff09;避坑记录 从最开始DIY到用联想服务器&#xff0c;再到现在的戴尔某笔记本&#xff0c;一路走来都是从csdn上的各路大神帖子上学习安装&#xff0c;帮助很大&#xff0c;避免了很多弯路&#xff1b;但也有一些不太…

华为笔记本linux双系统,真的有必要吗?华为笔记本搭载双系统

近段时间有消息称&#xff0c;华为将会推出一款12.9寸笔记本电脑将会采用PC、平板二合一的设计&#xff0c;同时搭载Intel平台并且支持Windows 10与Android双系统&#xff0c;日常状态下是运行Windows 10的笔记本电脑&#xff0c;而将键盘拆开后则会变为一台Android平板&#x…

苹果电脑装双系统利弊有哪些

很多人购买了苹果电脑以后,很多用户使用MAC系统还是很不习惯,都担心许多Windows软件不能使用了。那么苹果电脑装双系统有什么好处和坏处呢?很多用户都不清楚苹果电脑装双系统利弊在哪&#xff0c;今天&#xff0c;小编就把苹果电脑装双系统利弊有哪些的介绍分享给大家。 更多…

小米笔记本双固态硬盘安装win10+ubantu20双系统 实录

一.基本信息 电脑型号&#xff1a;小米笔记本Pro15.6 显卡型号&#xff1a;NVIDIA GeForce GTX 1050 Max-Q 原装固态硬盘&#xff1a;英特尔 SSDPEKNW010T8 容量&#xff1a;1024G 加装固态硬盘&#xff1a;三星860 EVO M.2接口&#xff08;SATA总线&#xff09; 容量&a…

笔记本双系统安装Ubuntu 20.04.3 LTS没有WIFI的解决方法

笔记本双系统安装Ubuntu 20.04.3 LTS没有WIFI 解决方法 最近使用华硕笔记本安装双系统&#xff08;win10 ubuntu20.04.3 LTS&#xff09;&#xff0c;安装好之后发现Ubuntu系统的设置里面没有wifi功能&#xff0c;就无法连接WIFI&#xff0c;只能使用有线网来上网。弄了好久终…

双系统笔记本 android,电脑安装双系统 微软 安卓 实现一机多用

在windows系统的电脑上再安装一个安卓系统&#xff0c;实现双系统自由切换。在windows系统中操作运行原来的所有程序&#xff0c;干该干的事&#xff1b;在安卓系统中运行安卓软件&#xff0c;比如 安装游戏APP玩手游、安装“电视家”APP取代机顶盒、安装网络教育APP上网课&…

双系统笔记本 android,安卓不止平板有 教你使用笔记本装安卓,和WINDOWS一起双系统亦可以的哦!(图解)...

随着新iPad的发售&#xff0c;苹果CEO蒂姆库克发表了“后PC时代”言论都表明平板市场的迅速扩张。不过现在我们在日常工作中还是离不开笔记本电脑的。通过开发移植&#xff0c;笔记本现在也可以安装只有移动设备才能使用的安卓系统&#xff0c;并实现大部分功能&#xff0c;同时…

华为笔记本换装linux双系统,matebook的win+ubuntu双系统安装方法

本帖最后由 苍星归来 于 2016-11-2 21:55 编辑 相信大家在使用MateBook系统时想安装第三方的系统来体验下别的系统怎么样。今天我就拿UBUNTU系统安装来给大伙抛砖引玉下。 在我体验UNUBTU系统时除了发现蓝牙驱动时不时的丢失外,别的硬件没有问题。 我们要安装新系统那就要先下…

联想服务器双系统安装教程,联想笔记本装win8/win10双系统教程

不少网友对于新win10系统都是持可接受态度&#xff0c;但还是会担心新系统不好用造成电脑日常使用困扰&#xff0c;那很多网友就比较热衷于双系统安装&#xff0c;但不少用户对于双系统安装都比较不了解&#xff0c;那今天给分享分享联想笔记本win8win10双系统安装教程。 准备工…

笔记本安装双系统教程

双系统教程很多&#xff0c;此处搬运官方教程的Link&#xff0c;非常全面和详细&#xff0c;既作为自己笔记使用&#xff0c;也供读者借鉴&#xff1b; dell计算机双系统安装教程&#xff1a; Ubuntu 以及 Windows 8 至 Windows 11 中的某个操作系统 虽然这是基于dell笔记本的教…

【教程】笔记本装Win10+Deepin双系统|详细

前言 deepin的评价蛮高的&#xff0c;重点还是国产的&#xff01;那必须捣鼓捣鼓&#xff0c;然后自己电脑的VMware无法从传文件&#xff0c;既然虚拟机不行&#xff0c;所以准备装双系统。 一、前期准备 下载deepin系统镜像源&#xff0c;选择官方下载即可。 deepin启动盘制…