基于Numba提高python運行效率過程解析
Numba是Python的即時編譯器,在使用NumPy數組和函數以及循環的代碼上效果最佳。使用Numba的最常見方法是通過其裝飾器集合,這些裝飾器可應用于您的函數以指示Numba對其進行編譯。調用Numba裝飾函數時,它會被“即時”編譯為機器代碼以執行,并且您的全部或部分代碼隨后可以本機機器速度運行!
安裝numba(我在這里加了--default-timeout=10000,防止安裝時出現timeout的錯誤)
pip --default-timeout=10000 install -U numba
from numba import jitimport timedef add(x): he=0 for i in range(x): he+=i return hestart=time.time()res=add(100000000)print(res)end=time.time()print(end-start)
耗時5s49999999500000005.707650184631348
使用Numba的JIT裝飾器@jit,以嘗試加快某些功能的運行速度
from numba import jitimport time@jitdef add(x): he=0 for i in range(x): he+=i return hestart=time.time()res=add(100000000)print(res)end=time.time()print(end-start)
耗時0.14s,快了近40倍49999999500000000.14488554000854492
看吧,快了40倍!
numba僅對numpy,for和while循環有效!
參考numba官網:http://numba.pydata.org/numba-doc/latest/developer/inlining.html#example-using-numba-jit
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
相關文章:
1. Python獲取抖音關注列表封號賬號的實現代碼2. ajax請求添加自定義header參數代碼3. Python數據分析之pandas函數詳解4. 解決Python 進程池Pool中一些坑5. php測試程序運行速度和頁面執行速度的代碼6. 無線標記語言(WML)基礎之WMLScript 基礎第1/2頁7. 三個不常見的 HTML5 實用新特性簡介8. 使用.net core 自帶DI框架實現延遲加載功能9. php網絡安全中命令執行漏洞的產生及本質探究10. Warning: require(): open_basedir restriction in effect,目錄配置open_basedir報錯問題分析
