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

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

欢迎学习交流!
邮箱: 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的简单使用

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

为了更好的进行对比,下面我们首先给出没有进行加速的代码,在没有进行加速时的代码和运算速度如下:
在这里插入图片描述
在这里插入图片描述

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

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

form numba import jit
@jit()

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

独不懂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值