有时候需要比较大的计算量,这个时候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运算加速的方法相关推荐

  1. python for循环加速_干货总结,24招加速你的Python代码,值得收藏

    一,分析代码运行时间 第1式,测算代码运行时间 平凡方法 快捷方法(jupyter环境) 第2式,测算代码多次运行平均时间 平凡方法 快捷方法(jupyter环境) 第3式,按调用函数分析代码运行时间 ...

  2. 3 x 10的python表达式_这道数学题用PYTHON编程语言怎么写? 编程语言python是用

    我觉着,这个应该这样解决比较符合计算机解题思路. 下面的回答的,思考的东西太多. # -*- coding: utf-8 -*- __author__ = 'lpe234' __date__ = '2 ...

  3. 人工智能只能用python吗_为什么人工智能用Python?

    主要原因: 1.人工智能适应Python的编程语言. 2.人工智能需要利用Python的高层语言,实现可移植性.面向对象.可扩展性.可嵌入型等功能,来实现人机交流. Python:是一种面向对象的解释 ...

  4. 计算机导论python知识点_如何系统地自学 Python?

    我是自学的Python.从对Python一无所知,到在博客上写Python相关的系列文章(Python快速教程),前后有将近三年的时间.期间有不少门槛,但也充满乐趣.乐趣是自学的最大动力.Python ...

  5. pythoncookbook和流畅的python对比_为什么你学Python效率比别人慢?因为你没有这套完整的学习资料...

    以下资源免费获取方式! 关注!转发!私信"资料"即可免费领取! 入门书籍 1.<Python基础教程>(Beginning Python From Novice to ...

  6. 零基础学python 视频_全网最全Python视频教程真正零基础学习Python视频教程 490集...

    Python Web开发-进阶提升 490集超强Python视频教程 真正零基础学习Python视频教程 [课程简介] 这是一门Python Web开发进阶课程,手把手教你用Python开发完整的商业 ...

  7. 为什么要学python语言_我们为什么要学习Python语言?

    原标题:我们为什么要学习Python语言? 聊到我们为什么要学习Python语言?小编不禁又想起大佬潘石屹准备开启Python学习旅程时所发布的微博. 我们为什么要学习Python语言? 在农业社会时 ...

  8. 下载python步骤_下载及安装Python详细步骤

    安装python分三个步骤: *下载python *安装python *检查是否安装成功 1.下载python (1)python下载地址 (2)选择下载的版本 (3)点开download后,找到下载 ...

  9. ubuntu更改默认python版本_更改Ubuntu默认python版本的方法

    1.查看基本信息 # 列出所有已安装python ls /usr/bin/python* #查看默认的 Python 版本信息: python --version 2.基于用户修改 默认Python ...

最新文章

  1. lockfree buffer test
  2. Java 动态代理介绍及用法
  3. postgresql mysql fdw_PostgreSQL使用MySQL外表(mysql_fdw)
  4. js中函数声明先提升还是变量先提升
  5. 渗透测试入门25之一次完整的渗透测试实验
  6. 7-11 玩转二叉树 (25 分)
  7. 散列函数之双重散列算法解决冲突问题
  8. 【转】Java中重载和重写的区别
  9. 去哪儿网前端架构师司徒正美:如何挑选适合的前端框架?
  10. 计算机编码器的工作原理,优先级编码器74LS148的电路结构、工作原理及使用方法...
  11. nginx下的一级域名跳转到二级域名的配置
  12. 消防报警系统服务器,广东火灾报警UL真诚服务
  13. python 手写字符识别
  14. css实现三角形对话框,三角形图案
  15. Neo4j 图数据库高级应用系列 / 服务器扩展指南 APOC 8.6 - 图生成 小世界模型
  16. SSM框架报错分析(一)——There is no getter for property named 'XXX' in 'class java.lang.String'...
  17. python调用笔记本摄像头
  18. Android P 如何挂载system镜像到根目录
  19. 通过 kubeadm 安装 k8s 1.14.1版本(master 单节点版)
  20. 南邮ctf-异性相吸

热门文章

  1. CF1634 F. Fibonacci Additions
  2. Android中的T代表什么意思
  3. Linux 路由配置详解
  4. 深入解析浏览器的幕后工作原理
  5. 中国互金协会上线移动金融可信公共服务平台
  6. h5 iframe 自适应高度
  7. Excel中IFERROR函数的使用方法
  8. React 知识汲取篇 —— react-app-rewired config-overrides.js配置
  9. 定义一个Dog类 定义属性名称、年龄 并封装, 定义eat方法 打印狗在进食。 当打印狗对象的时候输出狗的名称和年龄信息.
  10. 哔哩哔哩一直显示服务器繁忙,b站code504,为什么b站登录错误504