日本免费精品视频,男人的天堂在线免费视频,成人久久久精品乱码一区二区三区,高清成人爽a毛片免费网站

在線客服
Python高性能編程圖書
人氣:79

Python高性能編程

深刻理解Python的實現(xiàn) 讓你的Python代碼運行的更快,本書通過介紹改善優(yōu)化Python計算速度和可擴展性的策略,從而消除人們的這種誤 解。
  • 所屬分類:圖書 >計算機/網(wǎng)絡(luò)>程序設(shè)計>其他  
  • 作者:[美] [Micha] [Gorelick] [戈雷利克] Ian [Ozsvald] [歐日沃爾德]
  • 產(chǎn)品參數(shù):
  • 叢書名:--
  • 國際刊號:9787115454898
  • 出版社:人民郵電出版社
  • 出版時間:2017-06
  • 印刷時間:2017-05-01
  • 版次:1
  • 開本:16開
  • 頁數(shù):--
  • 紙張:膠版紙
  • 包裝:平裝-膠訂
  • 套裝:

內(nèi)容簡介

Python語言是一種腳本語言,其應(yīng)用領(lǐng)域非常廣泛,包括數(shù)據(jù)分析、自然語言處理、機器學(xué)習(xí)、科學(xué)計算、推薦系統(tǒng)構(gòu)建等。 本書共有12章,圍繞如何進行代碼優(yōu)化和加快實際應(yīng)用的運行速度進行詳細講解。本書主要包含以下主題:計算機內(nèi)部結(jié)構(gòu)的背景知識、列表和元組、字典和集合、迭代器和生成器、矩陣和矢量計算、并發(fā)、集群和工作隊列等。后,通過一系列真實案例展現(xiàn)了在應(yīng)用場景中需要注意的問題。 本書適合初級和中級Python程序員、有一定Python語言基礎(chǔ)想要得到進階和提高的讀者閱讀。

編輯推薦

Python代碼僅僅能夠正確運行還不夠,你需要讓它運行得更快。通過探索設(shè)計決策背后的基礎(chǔ)理論,本書幫助你更加深刻地理解Python的實現(xiàn)。你將學(xué)習(xí)如何找到性能瓶頸,以及如何在大數(shù)據(jù)量的程序中顯著加快代碼。 如何利用多核架構(gòu)或集群的優(yōu)點?如何構(gòu)建一個在不損失性的情況下具備可伸縮性的系統(tǒng)?有經(jīng)驗的Python程序員將學(xué)到針對這些問題或者其他問題的具體解決方案,以及來自那些在社交媒體分析、產(chǎn)品化機器學(xué)習(xí)和其他場景下使用高性能Python編程的公司的成功案例。 通過閱讀本書,你將能夠: ■ 更好地掌握numpy、Cython和剖析器; ■ 了解Python如何抽象化底層的計算機架構(gòu); ■ 使用剖析手段來尋找CPU時間和內(nèi)存使用的瓶頸; ■ 通過選擇合適的數(shù)據(jù)結(jié)構(gòu)來編寫高效的程序 ■ 加速矩陣和矢量計算; ■ 使用工具把Python編譯成機器代碼; ■ 管理并發(fā)的多I O和計算操作; ■ 把多進程代碼轉(zhuǎn)換到在本地或者遠程集群上運行; ■ 用更少的內(nèi)存解決大型問題。 “ 盡管P y thon在學(xué)術(shù)和工業(yè)領(lǐng)域很流行, 但人們也經(jīng)常由于Python程序運行太慢而放棄它。本書通過介紹改善優(yōu)化Python計算速度和可擴展性的策略,從而消除人們的這種誤 解。”——Jake VanderPlas 華盛頓大學(xué)

作者簡介

Micha Gorelick在bitly公司從事與數(shù)據(jù)打交道的工作,并負責(zé)建立了快速前進實驗室(Fast Forward Labs),研究從機器學(xué)習(xí)到高性能流算法領(lǐng)域的問題。 Ian Ozsvald是ModelInsight.io的數(shù)據(jù)科學(xué)家和教師,有著超過十年的Python經(jīng)驗。他在yCon和PyData會議上教授Python編程,這幾年一直在英國從事關(guān)于數(shù)據(jù)科學(xué)和高性能計算方面的咨詢工作。

目錄

目錄

第1章理解高性能Python1

1.1基本的計算機系統(tǒng)1

1.1.1計算單元2

1.1.2存儲單元5

1.1.3通信層6

1.2將基本的元素組裝到一起8

1.3為什么使用Python12

第2章通過性能分析找到瓶頸15

2.1高效地分析性能16

2.2Julia集合的介紹17

2.3計算完整的Julia集合20

2.4計時的簡單方法——打印和修飾24

2.5用UNIX的time命令進行簡單的計時27

2.6使用cProfile模塊28

2.7用runsnakerun對cProfile的輸出進行可視化33

2.8用line_profiler進行逐行分析34

2.9用memory_profiler診斷內(nèi)存的用量39

2.10用heapy調(diào)查堆上的對象45

2.11用dowser實時畫出變量的實例47

2.12用dis模塊檢查CPython字節(jié)碼49

2.13在優(yōu)化期間進行單元測試保持代碼的正確性53

2.14確保性能分析成功的策略56

2.15小結(jié)57

第3章列表和元組58

3.1一個更有效的搜索61

3.2列表和元組63

3.2.1動態(tài)數(shù)組:列表64

3.2.2靜態(tài)數(shù)組:元組67

3.3小結(jié)68

第4章字典和集合69

4.1字典和集合如何工作72

4.1.1插入和獲取73

4.1.2刪除76

4.1.3改變大小76

4.1.4散列函數(shù)和熵76

4.2字典和命名空間80

4.3小結(jié)83

第5章迭代器和生成器84

5.1無窮數(shù)列的迭代器87

5.2生成器的延遲估值89

5.3小結(jié)93

第6章矩陣和矢量計算94

6.1問題介紹95

6.2Python列表還不夠嗎99

6.3內(nèi)存碎片103

6.3.1理解perf105

6.3.2根據(jù)perf輸出做出抉擇106

6.3.3使用numpy107

6.4用numpy解決擴散問題110

6.4.1內(nèi)存分配和就地操作113

6.4.2選擇優(yōu)化點:找到需要被修正的地方116

6.5numexpr:讓就地操作更快更簡單120

6.6告誡故事:驗證你的“優(yōu)化”(scipy)121

6.7小結(jié)123

第7章編譯成C126

7.1可能獲得哪種類型的速度提升127

7.2JIT和AOT編譯器的對比129

7.3為什么類型檢查有助代碼更快運行129

7.4使用C編譯器130

7.5復(fù)習(xí)Julia集的例子131

7.6Cython131

7.6.1使用Cython編譯純Python版本132

7.6.2Cython注解來分析代碼塊134

7.6.3增加一些類型注解136

7.7Shed Skin140

7.7.1構(gòu)建擴展模塊141

7.7.2內(nèi)存拷貝的開銷144

7.8Cython和numpy144

7.9Numba148

7.10Pythran149

7.11PyPy151

7.11.1垃圾收集的差異152

7.11.2運行PyPy并安裝模塊152

7.12什么時候使用每種工具154

7.12.1其他即將出現(xiàn)的項目155

7.12.2一個圖像處理單元(GPU)的注意點156

7.12.3一個對未來編譯器項目的展望157

7.13外部函數(shù)接口157

7.13.1ctypes158

7.13.2cffi160

7.13.3f2py163

7.13.4CPython模塊166

7.14小結(jié)170

第8章并發(fā)171

8.1異步編程介紹172

8.2串行爬蟲175

8.3gevent177

8.4tornado182

8.5AsyncIO185

8.6數(shù)據(jù)庫的例子188

8.7小結(jié)191

第9章multiprocessing模塊193

9.1multiprocessing模塊綜述196

9.2使用蒙特卡羅方法來估算Pi198

9.3使用多進程和多線程來估算Pi199

9.3.1使用Python對象200

9.3.2并行系統(tǒng)中的隨機數(shù)207

9.3.3使用numpy207

9.4尋找素數(shù)210

9.5使用進程間通信來驗證素數(shù)221

9.5.1串行解決方案225

9.5.2Na ve Pool解決方案225

9.5.3Less Na ve Pool解決方案226

9.5.4使用Manager.Value作為一個標(biāo)記227

9.5.5使用Redis作為一個標(biāo)記229

9.5.6使用RawValue作為一個標(biāo)記232

9.5.7使用mmap作為一個標(biāo)記232

9.5.8使用mmap作為一個標(biāo)記的終極效果234

9.6用multiprocessing來共享numpy數(shù)據(jù)236

9.7同步文件和變量訪問243

9.7.1文件鎖243

9.7.2給Value加鎖247

9.8小結(jié)249

第10章集群和工作隊列251

10.1集群的益處252

10.2集群的缺陷253

10.2.1糟糕的集群升級策略造成華爾街損失4.62億美元254

10.2.2Skype的24小時全球中斷255

10.3通用的集群設(shè)計255

10.4怎樣啟動一個集群化的解決方案256

10.5使用集群時避免痛苦的方法257

10.6三個集群化解決方案258

10.6.1為簡單的本地集群使用Parallel Python模塊259

10.6.2使用IPython Parallel來支持研究260

10.7為魯棒生產(chǎn)集群的NSQ265

10.7.1隊列265

10.7.2者 訂閱者266

10.7.3分布式素數(shù)計算器268

10.8看一下其他的集群化工具271

10.9小結(jié)272

第11章使用更少的RAM273

11.1基礎(chǔ)類型的對象開銷高274

11.2理解集合中的RAM使用278

11.3字節(jié)和Unicode的對比280

11.4高效地在RAM中存儲許多文本281

11.5使用更少RAM的竅門290

11.6概率數(shù)據(jù)結(jié)構(gòu)291

11.6.1使用1字節(jié)的Morris計數(shù)器來做近似計數(shù)292

11.6.2K最小值295

11.6.3布隆過濾器298

11.6.4LogLog計數(shù)器303

11.6.5真實世界的例子307

第12章現(xiàn)場教訓(xùn)311

12.1自適應(yīng)實驗室(Adaptive Lab)的社交媒體分析(SoMA)311

12.1.1自適應(yīng)實驗室(Adaptive Lab)使用的Python312

12.1.2SoMA的設(shè)計312

12.1.3我們的開發(fā)方法論313

12.1.4維護SoMA313

12.1.5對工程師同行的建議313

12.2使用RadimRehurek.com讓深度學(xué)習(xí)飛翔314

12.2.1時機314

12.2.2優(yōu)化方面的教訓(xùn)316

12.2.3總結(jié)318

12.3在Lyst.com的大規(guī)模產(chǎn)品化的機器學(xué)習(xí)318

12.3.1Python在Lyst的地位319

12.3.2集群設(shè)計319

12.3.3在快速前進的初創(chuàng)公司中做代碼評估319

12.3.4構(gòu)建推薦引擎319

12.3.5報告和監(jiān)控320

12.3.6一些建議320

12.4在Smesh的大規(guī)模社交媒體分析321

12.4.1Python在Smesh中的角色321

12.4.2平臺321

12.4.3高性能的實時字符串匹配322

12.4.4報告、監(jiān)控、調(diào)試和部署323

12.5PyPy促成了成功的Web和數(shù)據(jù)處理系統(tǒng)324

12.5.1先決條件325

12.5.2數(shù)據(jù)庫325

12.5.3Web應(yīng)用326

12.5.4OCR和翻譯326

12.5.5任務(wù)分發(fā)和工作者327

12.5.6結(jié)論327

12.6在Lanyrd.com中的任務(wù)隊列327

12.6.1Python在Lanyrd中的角色328

12.6.2使任務(wù)隊列變高性能328

12.6.3報告、監(jiān)控、調(diào)試和部署328

12.6.4對開發(fā)者同行的建議329

網(wǎng)友評論(不代表本站觀點)

來自請***(**的評論:

非常滿意 推薦大家購買

2017-07-21 12:55:23
來自請***(**的評論:

非常滿意 推薦大家購買

2017-07-21 12:55:36
來自g***h(**的評論:

ok ok

2017-07-24 23:04:56

免責(zé)聲明

更多出版社