python在使用过程中最大的诟病就是运行速度慢,这是为什么呢?因为python的官方解释器cpython执行的速度慢 。提高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执行代码速度显著提升 。
推荐阅读
- python怎么用正则表达式?python中正则表达式的使用方法
- Python中decimal函数的作用是什么?decimal函数使用详解
- Python变量为什么不需要声明?变量和常量的区别在哪
- Python中for循环可以对哪些序列进行操作?这几个一定要知道
- Python中的标识符区分大小写吗?Python怎么变量命名
- python的dtype可用对象有哪些?这篇文章非常值得阅读
- python运算符优先级有哪些?这篇文章你一定要看
- python中怎么将pdf内容显示出来?这篇文章必须要看
- 哪些系统支持Python?这篇文章告诉你答案
- pycharm中断点怎么去掉?这篇文章通过图文形式教会你