python速度慢怎么解决?使用numba包对python程序加速

python在使用过程中最大的诟病就是运行速度慢,这是为什么呢?因为python的官方解释器cpython执行的速度慢 。提高python运行速度的方法有很多,这里主要介绍使用numba包对python程序加速 。

python速度慢怎么解决?使用numba包对python程序加速

文章插图
1.Numba是什么
Numba通过把python函数编译为机器代码进行执行,使得程序的运算速度大大提高 。即我们在调用python函数时,通过numba编译,全部或部分的代码将转为机器代码执行,从而提高程序的运行速度 。当我们在使用计算量大的python函数,如循环函数,或者集中计算的函数时,使用numba可以提高运算速度 。
2.Numba的使用
Numb的使用很简单,可以在它的项目主页上参看Linux下的安装步骤 。只需在python函数中应用numba装饰器,不用对python的原有代码做任何改动,即可完成剩下的工作 。只需通过简单的代码就能达到你所想要的效果,在循环中使用效果特别好 。
3.案例
下面以一个简单的例子来学习numba的使用 。这个例子是计算从1累加到1亿 。
原本的代码如下:
import timedef foo(x,y):tt = time.time()s = 0for i in range(x,y):s += iprint('Time used: {} sec'.format(time.time()-tt))return sprint(foo(1,100000000))运行后可看到结果如下:
Time used: 6.779874801635742 sec2.4999999950000000我们在python程序加入两行代码即可达到提速的效果,即引入numba包、通过装饰器修饰函数:
form numba import jit@jit()对上述案例加入这两行代码,如下所示:
from numba import jitimport time@jitdef foo(x,y):tt = time.time()s = 0for i in range(x,y):s += iprint('Time used: {} sec'.format(time.time()-tt))return sprint(foo(1,100000000))运行后,可看到速度快了100多倍 。
Time used: 0.04680037498474121 sec4999999950000000【python速度慢怎么解决?使用numba包对python程序加速】可见,通过numba使python执行代码速度显著提升 。

    推荐阅读