Use numba para acelerar operações matemáticas python

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环境下执行

 

 

Acho que você gosta

Origin blog.csdn.net/qq_39197555/article/details/114823159
Recomendado
Clasificación