编辑推荐
Python语言在科学计算和数据处理领域应用前景广阔。大数据时代,催生了人们处理大量数据的实际需求。
Python应用领域的拓展,越来越多的人将Python用于处理大型数值数据集,使用标准格式来进行数据的存储和通信也显得越来越重要,而HDF5也正迅速成为人们存储科学数据的选择。
本书会带你迅速了解使用HDF5对大小从GB至TB的数字数据集进行存档和共享的细节、实践以及陷阱,体验在Python语言中用HDF5存储科学数据。
通过真实世界的例子以及动手练习,你将依次学习科学数据集、层次性组织的组、用户定义的元数据,以及有互操作性的文件等主题。本书的例子对于Python2和Python3都适用。
本书包括以下内容:
设置HDF5工具并创建HDF5文件。
通过学习HDF5数据集对象来使用数据集。
理解数据集分块和压缩等高级功能。
使用组来学习如何利用HDF5层次性结构。
使用HDF5的属性来添加元数据,创建可以自解释的文件。
利用HDF5的类型系统创建有互操作性的文件。
使用引用,命名类型和维度标尺来表示数据之间的关系。
了解在Python中如何编写能跟HDF5互动的并行代码。
本书生产力和创造力的推进器的一个真实的完美例子。本书会让你觉得"HDF5很简单"。
内容简介
随着Python应用领域的拓展,越来越多的人将Python用于处理大型数值数据集,使用标准格式来进行数据的存储和通信也显得越来越重要,而HDF5也正迅速成为人们存储科学数据的选择。
本书向任何有Python数据分析基本背景的人介绍如何在Python下使用HDF5。 本书将着重于HDF5的本地功能集,而不是Python的高层抽象。熟悉Python和NumPy的读者,更容易阅读和掌握本书的内容。
本书适合有一定基础的Python开发者,尤其适合要使用Python开发数据存储和处理等相关应用的读者阅读参考。
作者简介
Andrew Collette,拥有UCLA的物理学博士,目前是科罗拉多大学的实验室研究科学家,并且他获得了UCLA的物理学博士学位。他已经在两台几百万美元的研究设备上用Python-NumPy-HDF5进行过科学分析。他是HDF5 for Python(h5py)项目的开发领袖。
目录
1章 简介 1
1.1 Python和HDF5 2
1.1.1 数据和元数据的组织 2
1.1.2 大数据复制 3
1.2 HDF5到底是什么 4
1.2.1 HDF5文件规格 5
1.2.2 HDF5标准库 6
1.2.3 HDF5生态系统 6
第2章 开始使用 7
2.1 HDF基本原理 7
2.2 设置 8
2.2.1 Python2还是Python3 8
2.2.2 代码示例 9
2.2.3 NumPy 9
2.2.4 HDF5和h5py 11
2.2.5 IPython 11
2.2.6 时间和优化 12
2.3 HDF5工具 13
2.3.1 HDFView 13
2.3.2 ViTables 14
2.3.3 命令行工具 15
2.4 你的第一个HDF5文件 16
2.4.1 使用环境管理器 17
2.4.2 文件驱动 18
2.4.3 用户块 19
第3章 使用数据集 20
3.1 数据集基础 20
3.1.1 类型和形状 20
3.1.2 读和写 21
3.1.3 创建空数据集 22
3.1.4 显式指定存储类型来节省空间 22
3.1.5 自动类型转换和直读 23
3.1.6 用astype读 24
3.1.7 改变形状 25
3.1.8 默认填充值 25
3.2 读写数据 25
3.2.1 高效率切片 26
3.2.2 start-stop-step索引 27
3.2.3 多维切片和标量切片 28
3.2.4 布尔索引 29
3.2.5 坐标列表 30
3.2.6 自动广播 31
3.2.7 直读入一个已存在的数组 32
3.2.8 数据类型注解 33
3.3 改变数据集的形状 34
3.3.1 创建可变形数据集 35
3.3.2 用resize重新组织数据 36
3.3.3 何时以及如何进行resize 37
第4章 让分块和压缩来帮忙 38
4.1 连续存储 38
4.2 分块存储 40
4.3 设置分块形状 41
4.3.1 自动分块 41
4.3.2 手动选择一个形状 42
4.4 性能实例:可变形数据集 43
4.5 过滤器和压缩 44
4.5.1 过滤器流水线 45
4.5.2 压缩过滤器 45
4.5.3 GZIP/DEFLATE压缩器 46
4.5.4 SZIP压缩器 46
4.5.5 LZF压缩器 47
4.5.6 性能 47
4.6 其他过滤器 48
4.6.1 SHUFFLE过滤器 48
4.6.2 FLETCHER32过滤器 49
4.7 第三方过滤器 50
第5章 组、链接和迭代:HDF5的层次性 51
5.1 根组和子组 51
5.2 组的基本原理 52
5.2.1 字典风格的访问 52
5.2.2 特殊属性 53
5.3 使用链接 53
5.3.1 硬链接 53
5.3.2 剩余空间和重新打包 55
5.3.3 软链接 55
5.3.4 外部链接 56
5.3.5 对象名字注解 58
5.3.6 用get决定对象类型 58
5.3.7 用require简化你的应用程序 59
5.4 迭代和容器 60
5.4.1 组如何存储 61
5.4.2 字典风格的遍历 61
5.4.3 测试存在性 62
5.5 用Visitor模式多级遍历 63
5.5.1 以名字访问 63
5.5.2 多个链接和visit 64
5.5.3 访问对象 65
5.5.4 遍历中止:一个简单的搜索策略 66
5.6 复制对象 66
5.7 对象比较和哈希 67
第6章 用特征存储元数据 69
6.1 特征基本原理 69
6.1.1 类型猜测 70
6.1.2 字符串和文件匹配 72
6.1.3 Python对象 73
6.1.4 显式指定类型 74
6.2 真实世界的例子:粒子加速数据库 76
6.2.1 基于HDF5的应用格式 76
6.2.2 数据分析 77
第7章 更多关于类型 79
7.1 HDF5类型系统 79
7.2 整型和浮点 80
7.3 定长字符串 81
7.4 变长字符串 81
7.4.1 变长字符串的数据类型 82
7.4.2 变长字符串数据集的使用 83
7.4.3 字节字符串和Unicode字符串 83
7.4.4 使用Unicode字符串 84
7.4.5 不要在字符串中保存二进制数据 85
7.4.6 确保你Python 2程序的未来 85
7.5 复合类型 85
7.6 复数类型 87
7.7 枚举类型 87
7.8 布尔类型 88
7.9 数组类型 89
7.10 不透明类型 90
7.11 日期和时间 91
第8章 通过引用、类型和维度标尺来组织数据 92
8.1 对象引用 92
8.1.1 创建和解引用 92
8.1.2 引用是一种“永不失效”的链接 93
8.1.3 引用是一种数据 94
8.2 区域引用 95
8.2.1 创建和读取区域引用 95
8.2.2 复杂索引 96
8.2.3 用区域引用获得数据集 96
8.3 命名类型 97
8.3.1 数据类型对象 97
8.3.2 链接命名类型 98
8.3.3 管理命名类型 98
8.4 维度标尺 98
8.4.1 创建维度标尺 99
8.4.2 在数据集上添加标尺 100
第9章 HDF5并发性:多线程和多进程 102
9.1 Python并发的基本概念 102
9.2 多线程 103
9.3 多进程 105
9.4 MPI和并发HDF5 108
9.4.1 一个非常快速的MPI介绍 108
9.4.2 基于MPI的HDF5程序 109
9.4.3 集体操作和独立操作 110
9.4.4 原子操作模式 111
第10章 下一步 114
10.1 寻求帮助 114
10.2 做出贡献 115
前言/序言
Python和HDF 5大数据应用 下载 mobi epub pdf txt 电子书 格式