基于Numba提高python运行效率过程解析


Posted in Python onMarch 02, 2020

Numba是Python的即时编译器,在使用NumPy数组和函数以及循环的代码上效果最佳。使用Numba的最常见方法是通过其装饰器集合,这些装饰器可应用于您的函数以指示Numba对其进行编译。调用Numba装饰函数时,它会被“即时”编译为机器代码以执行,并且您的全部或部分代码随后可以本机机器速度运行!

安装numba(我在这里加了--default-timeout=10000,防止安装时出现timeout的错误)

pip --default-timeout=10000 install -U numba
from numba import jit
import time
def add(x):
  he=0
  for i in range(x):
    he+=i
  return he
start=time.time()
res=add(100000000)
print(res)
end=time.time()
print(end-start)
耗时5s
4999999950000000
5.707650184631348

使用Numba的JIT装饰器@jit,以尝试加快某些功能的运行速度

from numba import jit
import time
@jit
def add(x):
  he=0
  for i in range(x):
    he+=i
  return he
start=time.time()
res=add(100000000)
print(res)
end=time.time()
print(end-start)
耗时0.14s,快了近40倍
4999999950000000
0.14488554000854492

看吧,快了40倍!

numba仅对numpy,for和while循环有效!

参考numba官网:http://numba.pydata.org/numba-doc/latest/developer/inlining.html#example-using-numba-jit

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python处理圆角图片、圆形图片的例子
Apr 25 Python
Python列表append和+的区别浅析
Feb 02 Python
利用Python读取文件的四种不同方法比对
May 18 Python
微信跳一跳自动运行python脚本
Jan 08 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
Sep 04 Python
对python遍历文件夹中的所有jpg文件的实例详解
Dec 08 Python
python调用虹软2.0第三版的具体使用
Feb 22 Python
Django对数据库进行添加与更新的例子
Jul 12 Python
python 发送json数据操作实例分析
Oct 15 Python
python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例
Feb 28 Python
动态设置django的model field的默认值操作步骤
Mar 30 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
Sep 24 Python
Python3 assert断言实现原理解析
Mar 02 #Python
Django认证系统user对象实现过程解析
Mar 02 #Python
在python中使用pymysql往mysql数据库中插入(insert)数据实例
Mar 02 #Python
Python基于requests库爬取网站信息
Mar 02 #Python
使用python3 实现插入数据到mysql
Mar 02 #Python
python数字类型math库原理解析
Mar 02 #Python
Python如何实现在字符串里嵌入双引号或者单引号
Mar 02 #Python
You might like
php 数组二分法查找函数代码
2010/02/16 PHP
SSO单点登录的PHP实现方法(Laravel框架)
2016/03/23 PHP
thinkphp3.x连接mysql数据库的方法(具体操作步骤)
2016/05/19 PHP
Yii2.0 模态弹出框+ajax提交表单
2016/05/22 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
宝塔面板在NGINX环境中TP5.1如何运行?
2021/03/09 PHP
JavaScript 脚本将当地时间转换成其它时区
2009/03/19 Javascript
jQuery 判断页面元素是否存在的代码
2009/08/14 Javascript
Javascript string 扩展库代码
2010/04/09 Javascript
js open() 与showModalDialog()方法使用介绍
2013/09/10 Javascript
Nodejs学习笔记之入门篇
2015/04/16 NodeJs
JS实现购物车特效
2017/02/02 Javascript
vue-cli 使用axios的操作方法及整合axios的多种方法
2018/09/12 Javascript
微信小程序实现跑马灯效果
2020/10/21 Javascript
JavaScript递归函数定义与用法实例分析
2019/01/24 Javascript
JS+CSS3实现的简易钟表效果示例
2019/04/13 Javascript
详解vue的数据劫持以及操作数组的坑
2019/04/18 Javascript
nodejs脚本centos开机启动实操方法
2020/03/04 NodeJs
matplotlib作图添加表格实例代码
2018/01/23 Python
基于python 爬虫爬到含空格的url的处理方法
2018/05/11 Python
Flask web开发处理POST请求实现(登录案例)
2018/07/26 Python
Random 在 Python 中的使用方法
2018/08/09 Python
python 动态生成变量名以及动态获取变量的变量名方法
2019/01/20 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
2019/07/23 Python
python pyinstaller打包exe报错的解决方法
2019/11/02 Python
python opencv 实现读取、显示、写入图像的方法
2020/06/08 Python
地图可视化神器kepler.gl python接口的使用方法
2020/12/22 Python
Clarins娇韵诗英国官网:来自法国的天然护肤品牌
2017/04/18 全球购物
下面代码从性能上考虑,有什么问题
2015/04/03 面试题
医学专业毕业生推荐信
2013/11/14 职场文书
计算机个人求职信范例
2014/01/24 职场文书
第一批党的群众路线教育实践活动工作总结
2014/03/03 职场文书
数控专业毕业生自荐信范文
2014/03/04 职场文书
新年晚会主持词
2014/03/24 职场文书
招商银行收入证明
2015/06/17 职场文书
vue 自定义组件添加原生事件
2022/04/21 Vue.js