第一章 瞭解高性能Python基本電腦系統理想化的計算vs. Python虛擬機器那為什麼還要用Python?如何成為高效能的程式開發者Python的未來第二章 透過效能分析來找出瓶頸有效率地分析介紹Julia set計算完整的Julia set簡單的計時法—print與decorator使用Unix time命令來做簡單的計時使用cProfile模組使用SnakeViz來將cProfile的輸出視覺化使用line_profiler來逐行測量使用memory_profiler來診斷記憶體的使用情況一起分析CPU與記憶體:使用Scalene用PySpy來自檢既有的程序在時間軸上做互動式呼叫堆疊分析:使用VizTracerBytecode:檢視底層在優化過程中進行單元測試,以維持正確成功分析程式碼的策略第三章 串列與tuple更有效率的搜尋法串列vs. tuple第四章 字典與集合字典與集合如何運作?第五章 迭代器與產生器處理無限序列的迭代器延後產生器求值第六章 矩陣與向量計算問題介紹Python串列不夠好嗎?記憶體碎片化用numpy來處理擴散問題numexpr:讓就地操作更快速與更輕易圖形處理單元(GPU)警世故事:驗證「優化」(scipy)從矩陣優化得到的教訓第七章 Pandas、Dask與PolarsPandas使用Dask來處理分散的資料結構與DataFrame用Polars來獲得快速的DataFrames第八章 編譯為C可能提升多少速度?JIT vs. AOT編譯器為何型態資訊可幫助程式跑得更快?使用C編譯器再談Julia set範例CythonpyximportCython與numpyNumbaPyPy速度改善方法總結使用各項技術的時機外部函式介面第九章 非同步I/O非同步編程簡介async/await如何運作?共享CPU–I/O工作負載第十章 multiprocessing模組multiprocessing模組概要使用Monte Carlo法來估計pi使用程序與執行緒來估計pi尋找質數使用跨程序通訊來檢驗質數使用multiprocessin來共享numpy資料同步檔案與變數存取第十一章 叢集與任務佇列叢集的好處叢集的缺點常見的叢集設計如何開始採用叢集方案在使用叢集時避免痛苦的方法兩種叢集方案其他可以研究的叢集工具Docker第十二章 使用更少RAM基本型態物件很昂貴瞭解集合使用多少RAMBytes vs. Unicode在RAM中有效率地儲存許多文字為更多文字建模:使用scikit-learn的FeatureHasherDictVectorizer與FeatureHasher簡介SciPy的稀疏矩陣關於使用更少RAM的小提示機率式資料結構第十三章 來自現場的教訓開發高效能機器學習演算法新聞領域中的高效能運算來自網路再保險領域的經驗量化金融領域裡的Python保持彈性以實現高效能使用Feature-engine來改進特徵工程作業線(2020)高效能的資料科學團隊(2020)Numba(2020)優化vs.思考(2020)讓深度學習飛起來,與RadimRehurek.com(2014)在Smesh的大型社群媒體分析(2014)
Think Python|學習程式設計的思考概念 第三版 Python技術手冊 第四版 Python資料科學學習手冊 第二版