
文章目录
- 用Numba 对 Python 加速
- numba - @jit修饰器
numba - @jit修饰器
Python好上手,但是慢起来也是真的慢。最近在找办法加速Python中一个多层for循环,因为数据结构的原因一直感觉无解——直到发现了Numba的@jit这个东西。
怎么用?直接在函数名上加@jit就行(当然这可能是最初级的用法,还没有非常深入地学习)
但是numba对一些数据结构不太支持,可能需要对数据预处理一下。可查阅:
Numba Documentation
Supported Python features in CUDA Python
附Example (数据量越大越明显) :
import time
from numba import *
import numpy as np
@jit
def h(ss):
f = 0
q = 0
for a in range(ss):
for b in range(126):
for c in range(20):
for d in range(36):
for e in range(10):
for f in range(7):
for g in range(2):
f += 99.87
q += f**2
return q
start = time.time()
i = h(8)
print('time = ', time.time() -start)
加上@jit前
time = 12.544034481048584
加上@jit后
time = 0.3435640335083008
数据量扩大100倍之后:
加上@jit前
time = 347.4983913898468
加上@jit后
time = 0.6444885730743408
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)