1 Introdução a numba
umba é um compilador para compilar arrays Python e funções de cálculo numérico. Este compilador pode aumentar muito a velocidade de cálculo de funções escritas diretamente em Python.
Numba usa a arquitetura do compilador LLVM para gerar código de máquina otimizado a partir de código Python puro. Ao adicionar anotações simples, ele otimiza o orientado a array e usa muitos códigos matemáticos Python para desempenho semelhante ao C, C ++ e Fortran sem alterar o Python. Intérprete. O método de compilação de numba é mostrado na figura abaixo:
Por que escolher numba?
Embora existam muitos outros compiladores, como cython e Pypy, a razão para escolher o Numbade é simples. Você não precisa sair da zona de conforto do código python e não precisa alterar seu código para obter alguma aceleração. só precisa adicionar um decorador à função Python. A aceleração pode ser concluída no meio, e o efeito de aceleração é equivalente ao código de cython.
2 Como usar numba
Quando numba acelera o código, adicione o otimizador @jit à função a ser otimizada. Ao usar o jit, você pode deixar o numba decidir quando e como otimizar. Conforme mostrado no seguinte exemplo simples:
from numba import jit
import time
from numba import jit
import time
@jit
def foo():
x = []
for a in range(100000000):
x.append(a)
def foo_withoutjit():
y = []
for b in range(100000000):
y.append(b)
%time foo() # 在ipython环境下执行
%time foo_withoutfit() # 在ipython环境下执行