本篇文章给大家分享的是有关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实现存储或读取