概要
とりあえず試せるコードを紹介します
環境
- macOS 15.0.1
- Python 3.11.10
- numba 0.60.0
インストール
- pipenv install numpy numba
サンプルコード
import time
import numpy as np
from numba import jit
# 通常のPython関数
def sum_array(arr):
total = 0
for i in arr:
total += i
return total
# Numbaを使用した関数
@jit(nopython=True)
def sum_array_numba(arr):
total = 0
for i in arr:
total += i
return total
# 配列の準備
array_size = 10**7
arr = np.random.rand(array_size)
# 通常のPython関数の実行時間を計測
start_time = time.time()
sum_array(arr)
end_time = time.time()
print(f"通常のPython関数の実行時間: {end_time - start_time} 秒")
# Numbaを使用した関数の実行時間を計測
start_time = time.time()
sum_array_numba(arr)
end_time = time.time()
print(f"Numbaを使用した関数の実行時間: {end_time - start_time} 秒")
結果
-
pipenv run python app.py
通常のPython関数の実行時間: 0.46547412872314453 秒
Numbaを使用した関数の実行時間: 0.17465901374816895
確かに速いです
最後に
使い所としては計算処理なので Web アプリなどでは使い所が難しいです
機械学習で使うにしてもライブラリ側ですでに使っているケースなどもあるので自分で使うケースがないのかも
0 件のコメント:
コメントを投稿