高效执行python代码:使用numba包对Python程序加速

高效执行python代码:使用numba包对Python程序加速

  • 前言
  • 1. Numba简介
  • 2. Numba的简单使用

欢迎学习交流!
邮箱: z…@1…6.com
网站: https://zephyrhours.github.io/

前言

python由于它动态解释性语言的特性,编写出来的代码实际上需要靠CPython编译成C语言之后才能运行。相比于java、c++要慢很多,尤其在做科学计算的时候,十亿百亿级别的运算,让python的这种劣势更加凸显。而numba就是解决python慢的一大利器,可以让python的运行速度提升上百倍!

1. Numba简介

Numba是python的即时编译器,可以将python函数编译为机器代码,也就是说当你调用python函数时,你的全部或部分代码都会被及时转换成为机器码进行执行,经过numba编译的python代码,其运行速度可以接近C或FORTRAN语言。使用Numba,你可以加速所有以集中计算的、计算量大的python函数(例如循环)的速度。而且使用numba非常简单,只需要将numba装饰器应用到python函数中,无需改动原本的python代码,numba会自动完成剩余的工作。它的主要优点可总结为:

  • 简单,往往只要1行代码就有惊喜;
  • 对循环(loop)有奇效;
  • 兼容常用的科学计算包;
  • 可以创建ufunc;
  • 可自动调整精度,保证准确性。

2. Numba的简单使用

  • 没有进行加速时的代码和速度

为了更好的进行对比,下面我们首先给出没有进行加速的代码,在没有进行加速时的代码和运算速度如下:
高效执行python代码:使用numba包对Python程序加速_第1张图片
在这里插入图片描述

  • 使用numba进行加速时的代码和速度

使用numba对程序进行加速非常简单,接下来,我们只加入下面两行代码就可完成程序的加速过程。分是是引入numba包,和用装饰器修饰我们的计算函数,具体代码如下:

form numba import jit
@jit()

在上面没有进行加速的例子中直接添加两行代码,然后直接运行,就可以对其进行加速,具体如下:
高效执行python代码:使用numba包对Python程序加速_第2张图片
在这里插入图片描述
从这里一个简单的案例可以看出,使用numba进行加速之后的代码在执行效率上有了显著的提升,这里只是一个非常简单的例子,运行时间都有了一个极大的提升,当运行程序较为复杂且较为耗时的情况下,使用numba包进行加速,它的提升效果就会更加明显。

你可能感兴趣的:(Python,python,编程语言,算法)