numba提升python运行速度的实例方法


Posted in Python onJanuary 25, 2021

大家都知道Python运行速度很慢,但是轮子多,因此用户十分广泛,在各种领域上都能用到Python,但是最头疼的还是,解决运行速度问题,因此这里给大家介绍的是numba,是基本是等于再造语言。但是支持的numpy函数并不多。要让能jit的函数多起来才行。下面就详细介绍使用numba提升python运行速度方法。

numba简介:

能够实现将python函数编译为机器代码,提高运行速度。

工作作用:

给python换一种编译器

使用numba:

1、导入numba及其编译器

import numpy as np
import numba 
from numba import jit

2、传入numba装饰器jit,编写函数

@jit(nopython=True) 
def go_fast(a): 
  trace = 0
   for i in range(a.shape[0]): 
    trace += np.tanh(a[i, i]) 
return a + trace

3、函数传入实参

x = np.arange(100).reshape(10, 10) 
go_fast(x)

4、加速的函数执行时间

% timeit go_fast(x)

知识点扩展:

numba适合科学计算

numpy是为面向numpy数组的计算任务而设计的。

在面向数组的计算任务中,数据并行性对于像GPU这样的加速器是很自然的。Numba了解NumPy数组类型,并使用它们生成高效的编译代码,用于在GPU或多核CPU上执行。特殊装饰器还可以创建函数,像numpy函数那样在numpy数组上广播。

什么情况下使用numba呢?

  • 使用numpy数组做大量科学计算时
  • 使用for循环时

到此这篇关于numba提升python运行速度的实例方法的文章就介绍到这了,更多相关如何使用numba提升python运行速度内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python实现通过shelve修改对象实例
Sep 26 Python
Python selenium文件上传方法汇总
Nov 19 Python
Python字典实现简单的三级菜单(实例讲解)
Jul 31 Python
解决Python字典写入文件出行首行有空格的问题
Sep 27 Python
python并发2之使用asyncio处理并发
Dec 21 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
May 18 Python
Python3 获取一大段文本之间两个关键字之间的内容方法
Oct 11 Python
Python对象中__del__方法起作用的条件详解
Nov 01 Python
python实现自动化上线脚本的示例
Jul 01 Python
windows 10 设定计划任务自动执行 python 脚本的方法
Sep 11 Python
关于pytorch中全连接神经网络搭建两种模式详解
Jan 14 Python
Matplotlib animation模块实现动态图
Feb 25 Python
python中K-means算法基础知识点
Jan 25 #Python
python中HTMLParser模块知识点总结
Jan 25 #Python
pycharm配置QtDesigner的超详细方法
Jan 25 #Python
Python扫描端口的实现
Jan 25 #Python
Python 将代码转换为可执行文件脱离python环境运行(步骤详解)
Jan 25 #Python
Python实现京东抢秒杀功能
Jan 25 #Python
Python Process创建进程的2种方法详解
Jan 25 #Python
You might like
不要轻信 PHP_SELF的安全问题
2009/09/05 PHP
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
2011/08/18 PHP
PHP实现XML与数据格式进行转换类实例
2015/07/29 PHP
Yii CGridView用法实例详解
2016/07/12 PHP
thinkphp5.1框架中容器(Container)和门面(Facade)的实现方法分析
2019/08/05 PHP
给网站上的广告“加速”显示的方法
2007/04/08 Javascript
基于JQuery框架的AJAX实例代码
2009/11/03 Javascript
JS无限树状列表实现代码
2011/01/11 Javascript
js 使用form表单select类实现级联菜单效果
2012/12/19 Javascript
js浮点数精确计算(加、减、乘、除)
2013/12/26 Javascript
jquery动态添加option示例
2013/12/30 Javascript
JavaScript定时器和优化的取消定时器方法
2015/07/03 Javascript
微信小程序 wxapp内容组件 icon详细介绍
2016/10/31 Javascript
uploader秒传图片到服务器完整代码
2017/04/22 Javascript
Ionic + Angular.js实现验证码倒计时功能的方法
2017/06/12 Javascript
es6学习之解构时应该注意的点
2017/08/29 Javascript
ES6扩展运算符用法实例分析
2017/10/31 Javascript
浅谈 Vue 项目优化的方法
2017/12/16 Javascript
angular1.x ui-route传参的三种写法小结
2018/08/31 Javascript
Element-UI踩坑之Pagination组件的使用
2018/10/29 Javascript
JS/CSS实现字符串单词首字母大写功能
2019/09/03 Javascript
html+vue.js 实现漂亮分页功能可兼容IE
2020/11/07 Javascript
[45:18]2018DOTA2亚洲邀请赛 4.3 突围赛 Optic vs iG 第一场
2018/04/04 DOTA
netbeans7安装python插件的方法图解
2013/12/24 Python
python寻找list中最大值、最小值并返回其所在位置的方法
2018/06/27 Python
Python画柱状统计图操作示例【基于matplotlib库】
2018/07/04 Python
Python实现平行坐标图的绘制(plotly)方式
2019/11/22 Python
python利用datetime模块计算程序运行时间问题
2020/02/20 Python
Pyspark获取并处理RDD数据代码实例
2020/03/27 Python
python中二分查找法的实现方法
2020/12/06 Python
让IE下支持Html5的placeholder属性的插件
2014/09/02 HTML / CSS
我的applet原先好好的, 一放到web server就会有问题,为什么?
2016/05/10 面试题
大学生咖啡店创业计划书
2014/01/21 职场文书
银行反四风对照检查材料
2014/09/29 职场文书
教师岗位职责范本
2015/04/02 职场文书
后天观后感
2015/06/08 职场文书