numbaを使用してPythonの数学演算を高速化する

1numbaの紹介

umbaは、Python配列と数値計算関数をコンパイルするためのコンパイラです。このコンパイラは、Pythonで直接記述された関数の計算速度を大幅に向上させることができます。

Numbaは、LLVMコンパイラアーキテクチャを使用して、純粋なPythonコードから最適化されたマシンコードを生成します。単純な注釈を追加することで、配列指向を最適化し、Pythonを変更せずに、C、C ++、Fortranと同様のパフォーマンスで多くの数学Pythonコードを使用します。numbaのコンパイル方法を次の図に示します。

なぜnumbaを選ぶのですか?

cythonやPypyなど、他にも多くのコンパイラがありますが、Numbadeを選択する理由は単純です。Pythonコードのコンフォートゾーンを離れる必要はなく、スピードアップのためにコードを変更する必要もありません。 Python関数にデコレータを追加するだけで済みます。加速は途中で完了でき、加速効果はcythonコードと同等です。

2numbaの使い方

numbaがコードを高速化したら、最適化する関数に@jitオプティマイザーを追加します。jitを使用する場合、最適化するタイミングと方法をnumbaに決定させることができます。次の簡単な例に示すように:

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

 

 

おすすめ

転載: blog.csdn.net/qq_39197555/article/details/114823159