日韩精品 中文字幕 动漫,91亚洲午夜一区,在线不卡日本v一区v二区丶,久久九九国产精品自在现拍

注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡軟件與程序設計Python高性能編程(第2版)

Python高性能編程(第2版)

Python高性能編程(第2版)

定 價:¥119.80

作 者: [美]米夏·戈雷利克,[美] 伊恩·歐日沃爾德
出版社: 人民郵電出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


ISBN: 9787115599476 出版時間: 2023-08-01 包裝: 平裝
開本: 128開 頁數(shù): 字數(shù):  

內(nèi)容簡介

  Python語言是一種腳本語言,應用領域非常廣泛,包括數(shù)據(jù)分析、自然語言處理、機器學習、科學計算、推薦系統(tǒng)構建等。本書共有12章,圍繞如何進行代碼優(yōu)化和加快實際應用程序的運行速度進行講解,還介紹了如何解決CPU密集型問題、數(shù)據(jù)傳輸和內(nèi)存密集型問題,如何通過移動數(shù)據(jù)、PyPy即時編譯器和異步I/O提升性能。本書主要包括以下內(nèi)容:計算機原理、列表和元組、字典和集合、迭代器、Python模塊、并發(fā)性、集群計算等。最后,本書通過一系列真實案例展現(xiàn)了在應用場景中使用Python時需要注意的問題。

作者簡介

  米夏·戈雷利克,F(xiàn)ast Forward Labs聯(lián)合創(chuàng)始人,致力于探討與機器學習研究和利用相關的倫理及現(xiàn)實問題。伊恩·歐日沃爾德,首席數(shù)據(jù)科學家兼團隊指導;PyData倫敦年會的組織者之一;負責運營位于倫敦的咨詢公司Mor Consulting Data Science;經(jīng)常在國際會議上發(fā)表演講。

圖書目錄


目錄
前言 xvii
第 1章 理解高性能Python 1
1.1 基本的計算機系統(tǒng) 1
1.1.1 計算單元 2
1.1.2 存儲單元 4
1.1.3 通信層 6
1.2 綜合考慮 8
1.3 為何使用Python 11
1.4 如何成為高性能程序員 13
1.4.1 最佳實踐 14
1.4.2 對Notebook最佳實踐的思考 15
1.4.3 重新發(fā)現(xiàn)工作的樂趣 16
第 2章 通過剖析找出瓶頸 17
2.1 高效地剖析 18
2.2 朱利亞集合簡介 19
2.3 計算整個朱利亞集合 22
2.4 簡單計時方法—print語句和裝飾器 25
2.5 使用UNIX命令time的簡單計時 27
2.6 使用模塊cProfile 29
2.7 使用SnakeViz可視化cProfile的輸出 34
2.8 使用line_profiler逐行剖析 35
2.9 使用memory_profiler診斷內(nèi)存占用情況 40
2.10 使用PySpy查看既有進程 47
2.11 字節(jié)碼:幕后發(fā)生的情況 48
2.11.1 使用模塊dis查看CPython字節(jié)碼 48
2.11.2 復雜度隨方法而異 50
2.12 優(yōu)化期間使用單元測試確保代碼正確 52
2.13 確保代碼剖析成功的策略 55
2.14 小結 56
第3章 列表和元組 57
3.1 更高效的查找方式 60
3.2 比較列表和元組 62
3.2.1 作為動態(tài)數(shù)組的列表 63
3.2.2 作為靜態(tài)數(shù)組的元組 66
3.3 小結 67
第4章 字典和集合 69
4.1 字典和集合的工作原理 72
4.1.1 插入和檢索 72
4.1.2 刪除 76
4.1.3 調(diào)整長度 76
4.1.4 散列函數(shù)和熵 76
4.2 字典和名稱空間 80
4.3 小結 83
第5章 迭代器和生成器 84
5.1 無窮數(shù)列迭代器 88
5.2 延遲執(zhí)行生成器 89
5.3 小結 93
第6章 矩陣和向量計算 94
6.1 問題簡介 95
6.2 Python列表不夠好嗎 99
6.3 內(nèi)存碎片 104
6.3.1 理解perf 106
6.3.2 根據(jù)perf的輸出做決策 108
6.3.3 進入numpy 108
6.4 使用numpy解決擴散問題 111
6.4.1 內(nèi)存分配和就地操作 114
6.4.2 有選擇地優(yōu)化:找出需要修復的地方 118
6.5 numexpr:讓你能夠更快、更輕松地執(zhí)行就地操作 121
6.6 警示故事:對優(yōu)化進行驗證(scipy) 122
6.7 從矩陣優(yōu)化獲得的經(jīng)驗教訓 124
6.8 Pandas 126
6.8.1 Pandas的內(nèi)部模型 127
6.8.2 將函數(shù)應用于多行數(shù)據(jù) 128
6.8.3 根據(jù)部分結果而不是使用拼接來創(chuàng)建DataFrame和Series 135
6.8.4 有多種解決問題的方式(而且可能有更快的方式) 136
6.8.5 Pandas高效開發(fā)建議 137
6.9 小結 138
第7章 編譯成C代碼 139
7.1 速度提升方法 140
7.2 JIT編譯器和AOT編譯器 141
7.3 為何類型信息有助于提高代碼運行速度 142
7.4 使用C語言編譯器 143
7.5 回顧朱利亞集合示例 143
7.6 Cython 144
7.7 pyximport 146
7.7.1 使用Cython標注選項來分析代碼塊 146
7.7.2 添加類型標注 149
7.8 Cython和numpy 152
7.9 Numba 156
7.10 PyPy 159
7.10.1 垃圾收集方面的差異 160
7.10.2 運行PyPy及安裝模塊 160
7.11 速度提升小結 162
7.12 各種技術的適用場景 163
7.13 圖形處理單元 165
7.13.1 動態(tài)圖:PyTorch 165
7.13.2 GPU基本剖析 168
7.13.3 GPU性能考慮因素 169
7.13.4 在什么情況下使用GPU 170
7.14 語言交互接口 172
7.14.1 ctypes 173
7.14.2 cffi 175
7.14.3 f2py 177
7.14.4 CPython模塊 180
7.15 小結 184
第8章 異步I/O 186
8.1 異步編程簡介 187
8.2 async/await的工作原理 190
8.2.1 串行爬蟲 191
8.2.2 gevent 192
8.2.3 tornado 196
8.2.4 aiohttp 199
8.3 兼具CPU密集型和I/O密集型的問題 202
8.3.1 串行版 203
8.3.2 分批處理結果 204
8.3.3 完全異步 207
8.4 小結 211
第9章 模塊multiprocessing 213
9.1 模塊multiprocessing概述 216
9.2 使用蒙特卡羅方法估算圓周率 217
9.3 使用進程和線程估算圓周率 219
9.3.1 使用Python對象 219
9.3.2 使用Joblib而不是multiprocessing 225
9.3.3 并行系統(tǒng)中的隨機數(shù) 229
9.3.4 使用numpy 230
9.4 查找素數(shù) 232
9.5 使用進程間通信驗證素數(shù) 242
9.5.1 串行解決方案 247
9.5.2 樸素進程池解決方案 247
9.5.3 改進的樸素進程池解決方案 248
9.5.4 將Manager.Value用作標志 249
9.5.5 將Redis用作標志 251
9.5.6 將RawValue用作標志 253
9.5.7 將mmap用作標志 254
9.5.8 將mmap用作標志(終極版) 255
9.6 使用multiprocessing共享numpy數(shù)據(jù) 257
9.7 同步文件和變量訪問 263
9.7.1 鎖定文件 263
9.7.2 鎖定值 267
9.8 小結 269
第 10章 集群和作業(yè)隊列 271
10.1 集群的優(yōu)點 272
10.2 集群的缺點 273
10.2.1 糟糕的集群升級策略讓華爾街大牛損失4.62億美元 274
10.2.2 Skype全球24小時中斷服務 274
10.3 常見的集群設計 275
10.4 如何啟動集群解決方案 276
10.5 使用集群時如何避免麻煩 276
10.6 兩種集群解決方案 277
10.6.1 使用IPython Parallel為研究工作提供支持 278
10.6.2 使用Dask并行化Pandas 281
10.7 使用NSQ打造健壯的生產(chǎn)集群 284
10.7.1 隊列 284
10.7.2 發(fā)布者/訂閱者 285
10.7.3 分布式素數(shù)計算 287
10.8 其他集群工具 291
10.9 Docker 292
10.9.1 Docker的性能 292
10.9.2 Docker的優(yōu)點 295
10.10 小結 296
第 11章 減少內(nèi)存占用量 297
11.1 基本類型對象的開銷很高 298
11.1.1 模塊array可高效地存儲大量的基本類型對象 299
11.1.2 使用NumExpr減少NumPy占用的內(nèi)存量 302
11.2 理解集合占用的內(nèi)存 305
11.3 比較字節(jié)和Unicode 307
11.4 在內(nèi)存中高效地存儲大量文本 307
11.5 使用scikit-learn FeatureHasher進行文本建模 315
11.6 DictVectorizer和FeatureHasher簡介 316
11.7 SciPy稀疏矩陣 319
11.8 減少內(nèi)存占用量的技巧 322
11.9 概率數(shù)據(jù)結構 322
11.9.1 使用1字節(jié)的莫里斯計數(shù)器實現(xiàn)非常接近的計數(shù) 323
11.9.2 K最小值 326
11.9.3 布隆過濾器 329
11.9.4 LogLog計數(shù)器 335
11.9.5 實例 339
第 12章 實戰(zhàn)經(jīng)驗教訓 342
12.1 使用特征引擎簡化特征工程流水線 342
12.1.1 機器學習中的特征工程 343
12.1.2 艱巨的特征工程流水線部署任務 343
12.1.3 利用開源Python庫 344
12.1.4 使用Feature-engine簡化特征工程流水線的構建和部署工作 344
12.1.5 推廣新的開源包 345
12.1.6 開發(fā)和維護開源庫及鼓勵積極投稿 346
12.2 表現(xiàn)出色的數(shù)據(jù)科學團隊 347
12.2.1 需要多長時間 347
12.2.2 探索和規(guī)劃 348
12.2.3 管理預期和交付 349
12.3 Numba 350
12.3.1 一個簡單的示例 350
12.3.2 最佳實踐和建議 352
12.3.3 尋求幫助 355
12.4 優(yōu)化和思維 356
12.5 Adaptive Lab的社交媒體分析(2014) 358
12.5.1 Adaptive Lab的Python使用情況 358
12.5.2 SoMA的設計 358
12.5.3 開發(fā)方法 359
12.5.4 維護SoMA 359
12.5.5 給同行的建議 360
12.6 RadimRehurek網(wǎng)站如何讓深度學習快步如飛(2014) 360
12.6.1 管用的策略 360
12.6.2 優(yōu)化方面的經(jīng)驗教訓 362
12.6.3 結語 364
12.7 Lyst網(wǎng)站可用于生產(chǎn)環(huán)境的大規(guī)模機器學習(2014) 364
12.7.1 集群設計 364
12.7.2 發(fā)展迅猛的初創(chuàng)公司中的代碼迭代 365
12.7.3 構建推薦引擎 365
12.7.4 報告和監(jiān)控 365
12.7.5 一些建議 366
12.8 Smesh的大規(guī)模社交媒體分析(2014) 366
12.8.1 Python在Smesh中扮演的角色 366
12.8.2 平臺 367
12.8.3 實時高性能字符串匹配 367
12.8.4 報告、監(jiān)控、調(diào)試和部署 368
12.9 使用PyPy成功地實現(xiàn)Web和數(shù)據(jù)處理系統(tǒng)(2014) 369
12.9.1 使用的工具 370
12.9.2 數(shù)據(jù)庫 370
12.9.3 Web應用 371
12.9.4 OCR和翻譯 371
12.9.5 任務分配和任務隊列 371
12.9.6 結語 372
12.10 Lanyrd的任務隊列(2014) 372
12.10.1 Python在Lanyrd扮演的角色 372
12.10.2 讓任務隊列表現(xiàn)出色 373
12.10.3 報告、監(jiān)控、調(diào)試和部署 373
12.10.4 給同行的建議 373

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) rgspecialties.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號