讓 Python 起飛的 24 個騷操作!

Python 加速的技巧有很多,這篇文章總結了 24 個,查缺補漏,每天學會一個新的小技巧

一、分析代碼運行時間

第 1 式:測算代碼運行時間

平凡方法

快捷方法(jupyter 環境)

第 2 式:測算代碼多次運行平均時間

平凡方法

快捷方法(jupyter 環境)

第 3 式:按調用函數分析代碼運行時間

平凡方法

快捷方法(jupyter 環境)

第 4 式:按行分析代碼運行時間

平凡方法

快捷方法(jupyter 環境)

二、加速你的查找

第 5 式:用 set 而非 list 進行查找

低速方法

高速方法

第 6 式:用 dict 而非兩個 list 進行匹配查找

低速方法

高速方法

三、加速你的循環

第 7 式:優先使用 for 循環而不是 while 循環

低速方法

高速方法

第 8 式:在循環體中避免重複計算

低速方法

高速方法

四、加速你的函數

第 9 式:用循環機制代替遞歸函數

低速方法

高速方法

第 10 式:用緩存機制加速遞歸函數

低速方法

高速方法

第 11 式:用 numba 加速 Python 函數

低速方法

高速方法

五、使用標準庫函數進行加速

第 12 式:使用 collections.Counter 加速計數

低速方法

高速方法

第 13 式:使用 collections.ChainMap 加速字典合併

低速方法

高速方法

六,使用 numpy 向量化進行加速

第 14 式:使用 np.array 代替 list

低速方法

高速方法

第 15 式:使用 np.ufunc 代替 math.func

低速方法

高速方法

第 16 式:使用 np.where 代替 if

低速方法

高速方法

七、加速你的 Pandas

第 17 式:使用 np.ufunc 函數代替 applymap

低速方法

高速方法

第 18 式:使用預分配存儲代替動態擴容

低速方法

高速方法

第 19 式:使用 csv 文件讀寫代替 excel 文件讀寫

低速方法

高速方法

第 20 式:使用 pandas 多進程工具 pandarallel

低速方法

高速方法

八、使用 Dask 進行加速

第 21 式:使用 dask 加速 dataframe

低速方法

高速方法

第 22 式:使用 dask.delayed 進行加速

低速方法

高速方法

九、應用多線程多進程加速

第 23 式:應用多線程加速 IO 密集型任務

低速方法

高速方法

第 24 式:應用多進程加速 CPU 密集型任務

低速方法

高速方法

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/7GBvHGIWThoUr8tWw2C3aA