編輯推薦
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 電子書