python加速_使用numba对Python运算加速的方法
有时候需要比较大的计算量,这个时候Python的效率就很让人捉急了,此时可以考虑使用numba 进行加速,效果提升明显~
(numba 安装貌似很是繁琐,建议安装Anaconda,里面自带安装好各种常用科学计算库)
from numba import jit
@jit
def t(count=1000):
total = 0
for i in range(int(count)):
total += i
return total
测试效果:
(关于__wrapped__ 见我的博文: 浅谈解除装饰器作用(python3新增) )
In [17]: %timeit -n 1 t.__wrapped__()
1 loop, best of 3: 52.9 µs per loop
In [18]: %timeit -n 1 t()
The slowest run took 13.00 times longer than the fastest. This could mean that an intermediate result is being cached.
1 loop, best of 3: 395 ns per loop
可以看到使用jit 加速后,即使设置测试一次,实际上还是取了三次的最优值,如果取最坏值(因为最优值可能是缓存下来的),则耗时为395ns * 13 大概是5us 还是比不使用的52.9us 快上大概10倍,
增大计算量可以看到使用numba加速后的效果提升更加明显,
In [19]: %timeit -n 10 t.__wrapped__(1e6)
10 loops, best of 3: 76.2 ms per loop
In [20]: %timeit -n 1 t(1e6)
The slowest run took 8.00 times longer than the fastest. This could mean that an intermediate result is being cached.
1 loop, best of 3: 790 ns per loop
如果减少计算量,可以看到当降到明显小值时,使用加速后的效果(以最差计)与不加速效果差距不大,因此如果涉及到较大计算量不妨使用jit 加速下,何况使用起来这么简便。
%timeit -n 1 t(10)
1 loop, best of 3: 0 ns per loop
%timeit -n 100 t.__wrapped__(10)
100 loops, best of 3: 1.79 µs per loop
%timeit -n 1 t(1)
The slowest run took 17.00 times longer than the fastest. This could mean that an intermediate result is being cached.
1 loop, best of 3: 395 ns per loop
%timeit -n 100 t.__wrapped__(1)
100 loops, best of 3: 671 ns per loop
以上这篇使用numba对Python运算加速的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
python加速_使用numba对Python运算加速的方法相关推荐
- python for循环加速_干货总结,24招加速你的Python代码,值得收藏
一,分析代码运行时间 第1式,测算代码运行时间 平凡方法 快捷方法(jupyter环境) 第2式,测算代码多次运行平均时间 平凡方法 快捷方法(jupyter环境) 第3式,按调用函数分析代码运行时间 ...
- 3 x 10的python表达式_这道数学题用PYTHON编程语言怎么写? 编程语言python是用
我觉着,这个应该这样解决比较符合计算机解题思路. 下面的回答的,思考的东西太多. # -*- coding: utf-8 -*- __author__ = 'lpe234' __date__ = '2 ...
- 人工智能只能用python吗_为什么人工智能用Python?
主要原因: 1.人工智能适应Python的编程语言. 2.人工智能需要利用Python的高层语言,实现可移植性.面向对象.可扩展性.可嵌入型等功能,来实现人机交流. Python:是一种面向对象的解释 ...
- 计算机导论python知识点_如何系统地自学 Python?
我是自学的Python.从对Python一无所知,到在博客上写Python相关的系列文章(Python快速教程),前后有将近三年的时间.期间有不少门槛,但也充满乐趣.乐趣是自学的最大动力.Python ...
- pythoncookbook和流畅的python对比_为什么你学Python效率比别人慢?因为你没有这套完整的学习资料...
以下资源免费获取方式! 关注!转发!私信"资料"即可免费领取! 入门书籍 1.<Python基础教程>(Beginning Python From Novice to ...
- 零基础学python 视频_全网最全Python视频教程真正零基础学习Python视频教程 490集...
Python Web开发-进阶提升 490集超强Python视频教程 真正零基础学习Python视频教程 [课程简介] 这是一门Python Web开发进阶课程,手把手教你用Python开发完整的商业 ...
- 为什么要学python语言_我们为什么要学习Python语言?
原标题:我们为什么要学习Python语言? 聊到我们为什么要学习Python语言?小编不禁又想起大佬潘石屹准备开启Python学习旅程时所发布的微博. 我们为什么要学习Python语言? 在农业社会时 ...
- 下载python步骤_下载及安装Python详细步骤
安装python分三个步骤: *下载python *安装python *检查是否安装成功 1.下载python (1)python下载地址 (2)选择下载的版本 (3)点开download后,找到下载 ...
- ubuntu更改默认python版本_更改Ubuntu默认python版本的方法
1.查看基本信息 # 列出所有已安装python ls /usr/bin/python* #查看默认的 Python 版本信息: python --version 2.基于用户修改 默认Python ...
最新文章
- lockfree buffer test
- Java 动态代理介绍及用法
- postgresql mysql fdw_PostgreSQL使用MySQL外表(mysql_fdw)
- js中函数声明先提升还是变量先提升
- 渗透测试入门25之一次完整的渗透测试实验
- 7-11 玩转二叉树 (25 分)
- 散列函数之双重散列算法解决冲突问题
- 【转】Java中重载和重写的区别
- 去哪儿网前端架构师司徒正美:如何挑选适合的前端框架?
- 计算机编码器的工作原理,优先级编码器74LS148的电路结构、工作原理及使用方法...
- nginx下的一级域名跳转到二级域名的配置
- 消防报警系统服务器,广东火灾报警UL真诚服务
- python 手写字符识别
- css实现三角形对话框,三角形图案
- Neo4j 图数据库高级应用系列 / 服务器扩展指南 APOC 8.6 - 图生成 小世界模型
- SSM框架报错分析(一)——There is no getter for property named 'XXX' in 'class java.lang.String'...
- python调用笔记本摄像头
- Android P 如何挂载system镜像到根目录
- 通过 kubeadm 安装 k8s 1.14.1版本(master 单节点版)
- 南邮ctf-异性相吸
热门文章
- CF1634 F. Fibonacci Additions
- Android中的T代表什么意思
- Linux 路由配置详解
- 深入解析浏览器的幕后工作原理
- 中国互金协会上线移动金融可信公共服务平台
- h5 iframe 自适应高度
- Excel中IFERROR函数的使用方法
- React 知识汲取篇 —— react-app-rewired config-overrides.js配置
- 定义一个Dog类 定义属性名称、年龄 并封装, 定义eat方法 打印狗在进食。 当打印狗对象的时候输出狗的名称和年龄信息.
- 哔哩哔哩一直显示服务器繁忙,b站code504,为什么b站登录错误504