今天小编就为大家分享一篇使用numba对Python运算加速的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
有时候需要比较大的计算量,这个时候Python的效率就很让人捉急了,此时可以考虑使用numba 进行加速,效果提升明显~
(numba 安装貌似很是繁琐,建议安装Anaconda,里面自带安装好各种常用科学计算库)
from numba import jit
@jit
def t(count=1000):
total = 0
for i in range(int(count)):
total += i
return total
测试效果:
(关于__wrapped__ 见我的博文: 浅谈解除装饰器作用(python3新增) )
In [17]: %timeit -n 1 t.__wrapped__()
1 loop, best of 3: 52.9 µs per loop
In [18]: %timeit -n 1 t()
The slowest run took 13.00 times longer than the fastest. This could mean that an intermediate result is being cached.
1 loop, best of 3: 395 ns per loop
可以看到使用jit 加速后,即使设置测试一次,实际上还是取了三次的最优值,如果取最坏值(因为最优值可能是缓存下来的),则耗时为395ns * 13 大概是5us 还是比不使用的52.9us 快上大概10倍,
增大计算量可以看到使用numba加速后的效果提升更加明显,
In [19]: %timeit -n 10 t.__wrapped__(1e6)
10 loops, best of 3: 76.2 ms per loop
In [20]: %timeit -n 1 t(1e6)
The slowest run took 8.00 times longer t