基于Numba提高python运行效率过程解析
作者:pfeiliu 发布时间:2022-09-10 11:00:38
标签:Numba,python,运行,效率
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
来源:https://www.cnblogs.com/pfeiliu/p/12074207.html


猜你喜欢
- 前言本文主要给大家介绍的是关于PHP/ThinkPHP实现批量打包下载文件的相关内容,分享出来供大家参考学习,话不多说了,来一起看看详细的介
- Blog的全名应该是Web log,中文意思是“网络日志”,后来缩写为Blog,而博客(Blogger)就是写Blog的人。从理解上讲,博客
- 一、动机(Motivate)在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,将会使对象变得异常复杂
- 能够操控日期和时间对于大多数编程语言来说是基本的能力,Perl也不例外。但是在碰到与时间相关的更加复杂的处理时,Perl自带的功能常常就显得
- MS SQL Server 2000通过企业管理器设置数据库的定期自动备份计划。1、打开企业管理器,双击打开你的服务器2、然后点上面菜单中的
- 在上篇文章给大家介绍了:MySQL8.0.20安装教程及其安装问题详细教程 https://www.jb51.net/artic
- 整体分为两步:第一步:查看系统保存的连接的ini文件(大概位置:F:\SecureCRTSecureFX_HH_x64_7.0.0.326\
- 这篇文章主要介绍了Python如何使用argparse模块处理命令行参数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考
- 本文实例为大家分享了python3实现弹弹球小游戏的具体代码,供大家参考,具体内容如下from tkinter import *from t
- 今天在群里,熊猫君提议整理一个帖子,一方面为初学者提供一个入门指南,另一方面也象借此和已经在从事这个行业进行一点交流。下面是我从事这个行当多
- 首先来介绍一下什么是弦图?弦图主要用于展示多个对象之间的关系,连接圆上任意两点的线段叫做弦,弦(两点之间的连线)就代表着两者之间的关联关系。
- 共有三种推导式列表(list)推导式字典(dict)推导式集合(set)推导式列表推导式基本语法:[out_express for out_
- 1. 简介本文介绍使用sync.Once来实现单例模式,包括单例模式的定义,以及使用sync.Once实现单例模式的示例,同时也比较了其他单
- python程序运行中,可由程序抛出异常。异常触发:使用raise命令抛出异常,即可使用异常基类Exception,也可使用自定义异常类(继
- 本文实例为大家分享了python3-flask文件上传操作的具体代码,供大家参考,具体内容如下# -*- coding: utf-8 -*-
- Update 语句Update 语句用于修改表中的数据。语法:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值P
- 最近为数据库服务器增加了内存,达到了最大支持的8G,数据库用的是mssql 2005 ,之前内存一直是4G的,不存在内存大和32位操作系统冲
- 自执行函数:自动执行的函数。它在被解释时就已经在运行了。一般函数都是在被调用时才会执行的。 自执行函数的一般格式:(function() {
- 首先centos7 已经不支持mysql,因为收费了你懂得,所以内部集成了mariadb,而安装mysql的话会和mariadb的文件冲突,
- 这里介绍使用python-Django框架来实现web端分页呈现数据,主要说明对应的views,urls,templates三个文件的编程逻