基於Numba提高python執行效率過程解析
阿新 • • 發佈:2020-03-03
Numba是Python的即時編譯器,在使用NumPy陣列和函式以及迴圈的程式碼上效果最佳。使用Numba的最常見方法是通過其裝飾器集合,這些裝飾器可應用於您的函式以指示Numba對其進行編譯。呼叫Numba裝飾函式時,它會被“即時”編譯為機器程式碼以執行,並且您的全部或部分程式碼隨後可以本機機器速度執行!
安裝numba(我在這裡加了--default-timeout=10000,防止安裝時出現timeout的錯誤)
pip --default-timeout=10000 install -U numba
from numba import jit import time def add(x): he=0 for i in range(x): he+=i return he start=time.time() res=add(100000000) print(res) end=time.time() print(end-start)
耗時5s 4999999950000000 5.707650184631348
使用Numba的JIT裝飾器@jit,以嘗試加快某些功能的執行速度
from numba import jit import time @jit def add(x): he=0 for i in range(x): he+=i return he start=time.time() res=add(100000000) print(res) end=time.time() print(end-start)
耗時0.14s,快了近40倍 4999999950000000 0.14488554000854492
看吧,快了40倍!
numba僅對numpy,for和while迴圈有效!
參考numba官網:http://numba.pydata.org/numba-doc/latest/developer/inlining.html#example-using-numba-jit
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。