zl程序教程

您现在的位置是:首页 >  后端

当前栏目

《Python和HDF 5大数据应用》——第2章 开始使用 2.1 HDF基本原理

Python应用数据 开始 2.1 基本原理 使用
2023-09-11 14:17:36 时间

本节书摘来自异步社区《Python和HDF 5大数据应用》一书中的第2章,第2.1节,作者[美]Andrew Collette(科莱特),胡世杰 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。

第2章 开始使用 2.1 HDF基本原理

在迫不及待跳进Python代码样例之前,我们有必要花几分钟时间着重关注一下HDF5自身是如何组织的。图2-1展示了HDF5的各种逻辑层。蓝色表示该层处于HDF5标准库内部;绿色则代表使用HDF5的客户软件。


screenshot

大多数客户代码,包括Python模块h5py和PyTables都使用C API(HDF5自己就是用C写成的)。在简介里我们已经知道HDF5的数据模型包含三大公开抽象:数据集(第3章)、组(第5章)和特征(第6章)。C API(以及其上的Python代码)操作这些对象。

HDF5使用各种内部数据结构来表示组、数据集和特征。比如,组使用一种被称为“B树”的数据结构来索引其成员,这使得我们能非常迅速地在一个组内获取成员以及创建新成员,哪怕这个组内存储了上百万个对象(61页,组如何存储)。在考虑性能问题的时候,你通常只需要关心这些数据结构。比如,在使用分块存储(第4章)时,理解数据在磁盘上实际被如何组织非常重要。

下面两层则跟你的数据如何进入磁盘有关。HDF5对象都生存在一个1维逻辑地址空间,就好像一个普通文件。然而这个地址空间和磁盘上的字节之间还有一个额外的HDF5驱动层,负责磁盘的写入机制,同时亦能在处理过程中做一些令人惊叹的事情。

比如说,HDF5的core驱动能够让你的文件完全保存在内存中,读写速度超快。family驱动让你能够将一个文件分成固定大小的多个文件块。mpio驱动则利用消息传递接口(MPI)库使得多个并发的进程访问同一个文件。所有这些驱动对于在上层操作组、数据集和特征的代码来说都是透明的。


Python 的 __name__ 变量及其应用 __name__ 是 Python 中的一个特殊变量,它代表当前模块的名字。 当一个 Python 文件被直接运行的时候,__name__ 的值会被设置为 __main__。 当代码被导入到其他模块中运行时,__name__ 的值会被设置为模块名称。
Python多线程爬虫编程中queue.Queue和queue.SimpleQueue的区别和应用 在Python中,queue模块提供了多种队列类,用于在多线程编程中安全地交换信息。其中,queue.Queue 和queue.SimpleQueue 是两个常用的先进先出(FIFO)的队列类,它们有以下区别和优缺点: queue.Queue 是一个更复杂的队列类实现涉及到多个锁和条件变量,因此可能会影响性能和内存效率。 SimpleQueue 是一个更简单的队列类它只提供了put()和get()两个方法,并且不支持maxsize参数
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。