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 相关文章推荐
Android 兼容性问题:java.lang.UnsupportedOperationException解决办法
Mar 19 Python
Python获取系统所有进程PID及进程名称的方法示例
May 24 Python
Python爬虫框架Scrapy基本用法入门教程
Jul 26 Python
利用Python+阿里云实现DDNS动态域名解析的方法
Apr 01 Python
python里 super类的工作原理详解
Jun 19 Python
python+logging+yaml实现日志分割
Jul 22 Python
使用Python完成15位18位身份证的互转功能
Nov 06 Python
nginx搭建基于python的web环境的实现步骤
Jan 03 Python
基于python3生成标签云代码解析
Feb 18 Python
pandas DataFrame 数据选取,修改,切片的实现
Apr 24 Python
如何将anaconda安装配置的mmdetection环境离线拷贝到另一台电脑
Oct 15 Python
python的变量和简单数字类型详解
Sep 15 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
自己动手做一个SQL解释器
2006/10/09 PHP
php抓即时股票信息
2006/10/09 PHP
IIS6.0+PHP5.x+MySQL5.x+Zend3.0x+GD+phpMyAdmin2.8x通用安装实例(已经完成)
2006/12/06 PHP
PHP Array交叉表实现代码
2010/08/05 PHP
php下使用iconv需要注意的问题
2010/11/20 PHP
zf框架的校验器使用使用示例(自定义校验器和校验器链)
2014/03/13 PHP
php实现基于微信公众平台开发SDK(demo)扩展的方法
2014/12/22 PHP
php创建无限级树型菜单
2015/11/05 PHP
PHP Cookie学习笔记
2016/08/23 PHP
JavaScript-RegExp对象只能使用一次问题解决方法
2014/06/23 Javascript
AngularJS基础 ng-options 指令详解
2016/08/02 Javascript
JS实现的base64加密解密操作示例
2018/04/18 Javascript
关于Vue项目跨平台运行问题的解决方法
2018/09/18 Javascript
js中自定义react数据验证组件实例详解
2018/10/19 Javascript
Vue实现页面添加水印功能
2019/11/09 Javascript
bootstrap-paginator服务器端分页使用方法详解
2020/02/13 Javascript
详细分析vue表单数据的绑定
2020/07/20 Javascript
addEventListener()和removeEventListener()追加事件和删除追加事件
2020/12/04 Javascript
Python3.x和Python2.x的区别介绍
2013/02/12 Python
Pycharm学习教程(3) 代码运行调试
2017/05/03 Python
Python管理Windows服务小脚本
2018/03/12 Python
python3+PyQt5重新实现自定义数据拖放处理
2018/04/19 Python
opencv3/python 鼠标响应操作详解
2019/12/11 Python
英国殿堂级有机护肤品牌:Rodial
2017/04/17 全球购物
Brasty波兰:香水、化妆品、手表网上商店
2019/04/15 全球购物
TobyDeals美国:在电子产品上获得最好的优惠和折扣
2019/08/11 全球购物
使用索引有什么好处
2016/07/27 面试题
TCP协议通讯的过程和步骤是什么
2015/10/18 面试题
支部鉴定材料
2014/06/02 职场文书
私人委托书格式
2014/09/10 职场文书
社会体育专业大学生职业生涯规划书
2014/09/17 职场文书
公务员四风问题对照检查材料整改措施
2014/09/26 职场文书
军训后的感想
2015/08/07 职场文书
手把手教你制定暑期学习计划,让你度过充实的暑假
2019/08/22 职场文书
SQL SERVER中的流程控制语句
2022/05/25 SQL Server
详解SQL报错盲注
2022/07/23 SQL Server