讓 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