基于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笔记(叁)继续学习
Oct 24 Python
python生成器的使用方法
Nov 21 Python
使用Python编写提取日志中的中文的脚本的方法
Apr 30 Python
Python使用回溯法子集树模板解决迷宫问题示例
Sep 01 Python
Python决策树分类算法学习
Dec 22 Python
Python paramiko模块的使用示例
Apr 11 Python
python 借助numpy保存数据为csv格式的实现方法
Jul 04 Python
用Pytorch训练CNN(数据集MNIST,使用GPU的方法)
Aug 19 Python
python带参数打包exe及调用方式
Dec 21 Python
python字符串,元组,列表,字典互转代码实例详解
Feb 14 Python
使用Python pip怎么升级pip
Aug 11 Python
用Python实现童年贪吃蛇小游戏功能的实例代码
Dec 07 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高效率写法(详解原因)
2013/06/20 PHP
Codeigniter实现发送带附件的邮件
2015/03/19 PHP
mysql_escape_string()函数用法分析
2016/04/25 PHP
php利用fsockopen GET/POST提交表单及上传文件
2017/05/22 PHP
PHP获取文件扩展名的方法实例总结
2017/06/10 PHP
thinkPHP实现基于ajax的评论回复功能
2018/06/22 PHP
javascript+css 网页每次加载不同样式的实现方法
2009/12/27 Javascript
为JavaScript提供睡眠功能(sleep) 自编译JS引擎
2010/08/16 Javascript
JavaScript动态操作表格实例(添加,删除行,列及单元格)
2013/11/25 Javascript
JavaScript继承基础讲解(原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承)
2014/08/16 Javascript
JavaScript中的依赖注入详解
2015/03/18 Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
2016/01/08 Javascript
探究Javascript模板引擎mustache.js使用方法
2016/01/26 Javascript
浅谈js函数中的实例对象、类对象、局部变量(局部函数)
2016/11/20 Javascript
5种JavaScript脚本加载的方式
2017/01/16 Javascript
微信小程序商城项目之淘宝分类入口(2)
2017/04/17 Javascript
vue 实现axios拦截、页面跳转和token 验证
2018/07/17 Javascript
js module大战
2019/04/19 Javascript
js new Date()实例测试
2019/10/31 Javascript
vue.js循环radio的实例
2019/11/07 Javascript
[02:25]DOTA2英雄基础教程 熊战士
2014/01/03 DOTA
python基于urllib实现按照百度音乐分类下载mp3的方法
2015/05/25 Python
python获取目录下所有文件的方法
2015/06/01 Python
python验证码识别的示例代码
2017/09/21 Python
Python 判断是否为质数或素数的实例
2017/10/30 Python
机器学习python实战之手写数字识别
2017/11/01 Python
Python获取浏览器窗口句柄过程解析
2020/07/25 Python
Python调用SMTP服务自动发送Email的实现步骤
2021/02/07 Python
HTML5+CSS3应用详解
2014/02/24 HTML / CSS
网络安全类面试题
2015/08/01 面试题
会计电算化专业个人的自我评价
2013/11/24 职场文书
企业安全生产标语
2014/06/06 职场文书
导游欢送词
2015/01/31 职场文书
2015年基层党建工作总结
2015/05/14 职场文书
2019年公司卫生管理制度样本
2019/08/21 职场文书
python - asyncio异步编程
2021/04/06 Python