ホームページ  >  記事  >  バックエンド開発  >  Python プログラムを高速化する方法

Python プログラムを高速化する方法

(*-*)浩
(*-*)浩オリジナル
2019-07-05 14:29:322470ブラウズ

今回は、Python の計算を高速化する簡単な方法である numba ライブラリを使用する方法について説明します。numba ライブラリは、JIT テクノロジを使用してオンザフライでコンパイルでき、高いパフォーマンスを実現します。 cuda GPU のパワーも利用できます Acceleration は Python を高速化するための非常に優れたツール ライブラリです 使い方は簡単ですが、インストールは少し複雑です。

Python プログラムを高速化する方法

#numba はインストール完了後に使用できるようになります。 (推奨される学習: Python ビデオ チュートリアル )

公式 Web サイトから最も古典的な例を借用して、アクセラレーション プログラムとプレアクセラレーション プログラムの違いを確認するための小さなケースを以下に書きます。

#!/usr/bin/env python
# coding=utf-8
from numba import jit
from numpy import arange
import time

@jit
def sum2d(arr):
    M, N = arr.shape
    result = 0.0
    for i in range(M):
        for j in range(N):
            result += arr[i,j]
    return result

a = arange(9).reshape(3,3)
start_time = time.time()
for i in range(10000000):
    sum2d(a)
end_time = time.time()
print (end_time - start_time)

ここでは、numpy を使用して 3 行 3 列の行列 [[0,1,2],[3,4,5],[6,7,8]] を生成します。そして 2 次元の累積計算を実行すると、値は明らかに 36 になるはずです。ここではそのような計算を 10000000 回実行しました。@jit アノテーションを使用すると、numba jit テクノロジーを直接使用してリアルタイムでコンパイルできるため、速度が向上します。実行時間は約3.86秒 アノテーションを外した場合の実行時間は約25.45秒 ここから約6.6倍の性能向上があることが分かりますので、確かにnumbaを使って高速化するのは便利で簡単です

Python 関連の技術記事の詳細については、Python チュートリアル 列を参照してください。

以上がPython プログラムを高速化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。