numba是一款可以将python函数编译为机器代码的JIT编译器,经过numba编译的python代码(仅限数组运算),其运行速度可以接近C或FORTRAN语言。
numba使用情况
- 使用numpy数组做大量科学计算时
- 使用for循环时
1.numba使用
导入numpy、numba及其编译器
import numpy as np
import numba
from numba import jit
传入numba装饰器jit,编写函数
# 使用numba的情况
@jit(nopython=True)
def t():
x = 0
for i in np.arange(5000):
x += i
return x
%timeit(t())
nopython = True选项要求完全编译该函数(以便完全删除Python解释器调用),否则会引发异常。这些异常通常表示函数中需要修改的位置,以实现优于Python的性能。强烈建议您始终使用nopython = True。
2.不适用场景
numba目前只支持Python原生函数和部分Numpy函数,其他场景下无效。