HDF5的通俗介绍

本文笔记来自HDF5视频教程,属于浓缩通俗版。


HDF5是干嘛的
想象一下,一个项目的各种数据,不论是文本格式,还是数据格式的,全都堆在一个excel里,能通过Python命令行调用,从而可以做出不同的“数据透视图”,以及做其他各种跨表格的自动化骚操作。而且这几个excel运行速度特别快,放的数据量特别大,电脑怎么用都不会卡。 HDF5实现的就是这个理想。
HDF5解决问题的方式:
简单的说,就是给每个“矩阵数据(表格)”的文件,提供自动化“加描述”,“打标签”的功能。然后就可以魔法了
所以, Datasets, Attributes, Groups,就是HDF5的基本数据模型。

代码调用 Datasets 的方式
摘要:简单说,跟“读csv文件到pandas然后操作”的流程差不多 (用的时候问AI写就行了)
两个小概念
    shape 
      描述矩阵形状的。e.g.3维矩阵就是描述长宽高的, dset.shape==(5,10,7) 
    datatype
     int,float,string那些。在dataset创建的时候就固定好了
具体调用dataset的步骤:
简单说,跟“读csv文件到pandas然后操作”的流程差不多(用的时候问AI写就行了)。区别在于文件后缀是.hdf5。
示例:

HDF5 View的工具
用来看数据内容的。类似于Matlab看矩阵的那个工具

处理 Attributres 的方式
LX摘要:这段是唯一要人肉理解的地方。

处理 Groups 的方式
用法就跟命令行增删改 「文件夹」差不多 (可以用的时候问AI)
Links的概念
相当于「快捷方式」。 
快捷方式可以指向文件,也可以指向文件夹。同样,LInks在HDF5里面,可以指向 Datasets,也可以指向 Groups

Path的概念
相当于Linux语境里「Path」(文件路径)的概念。
  就像~/.bashrc,~/temp/../bashrc, /users/xxx/home/.bashrc,是不同的文件路径,都指向同一个文件。
  在HDF5的语境里,path的意思一样,说的也是定位到文件的路径。

Dictionary
不仅能用矩阵的方式访问数据,也能用dictionary的方式。用的时候问AI举例就行了。

Partial I/O 
用法和numpy的 Slicing( 读列,读行数据)差不多。

Compound Datatype
对于一个Component Datatype的 Datasets ,简单理解成一个excel数据文件就行了。要点在于,每一列的数据类型(string, int,etc)可以不一样。
Compound Datatype意思类似C语言里的Struct,把不同datatype(e.g.string,int)放到一个文件里. 这个概念在numpy里面的对应概念是structured array

三种数据存储模式
Continous: 隔行扫描式存储。因此对于1维数据的读写效率很高。
Chunked: 块存储。如果性能好的话,对内存的要求高。
Special Layout - Compact
Special Layout - External

数据压缩
HDF5提供的压缩功能,不用每次IO前后都做压缩解压操作,比较方便。具体到数据多的时候再看
社区的命令行工具
需要用的时候再看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值