1. 程式人生 > 程式設計 >基於Numba提高python執行效率過程解析

基於Numba提高python執行效率過程解析

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。