一. 前言:numba,让python速度提升百倍

python由于它动态解释性语言的特性,跑起代码来相比java、c++要慢很多,尤其在做科学计算的时候,十亿百亿级别的运算,让python的这种劣势更加凸显。

办法永远比困难多,numba就是解决python慢的一大利器,可以让python的运行速度提升上百倍!

二. 什么是numba?

numba是一款可以将python函数编译为机器代码的JIT编译器,经过numba编译的python代码(仅限数组运算),其运行速度可以接近C或FORTRAN语言。

python之所以慢,是因为它是靠CPython编译的,numba的作用是给python换一种编译器。

三. numba使用方法

from numba import jit
import numpy as np
import timex = np.arange(100).reshape(10, 10)@jit(nopython=True)
def go_fast(a): # Function is compiled and runs in machine codetrace = 0.0for i in range(a.shape[0]):trace += np.tanh(a[i, i])return a + trace# DO NOT REPORT THIS... COMPILATION TIME IS INCLUDED IN THE EXECUTION TIME!
start = time.perf_counter()
go_fast(x)
end = time.perf_counter()
print("Elapsed (with compilation) = {}s".format((end - start)))# NOW THE FUNCTION IS COMPILED, RE-TIME IT EXECUTING FROM CACHE
start = time.perf_counter()
go_fast(x)
end = time.perf_counter()
print("Elapsed (after compilation) = {}s".format((end - start)))
Elapsed (with compilation) = 3.3010261569870636s
Elapsed (after compilation) = 5.221023457124829e-06s

可以看到numba让python飞起来了!
用法:导入numba模块,再要进行加速的函数前加上@jit(nopython=True)这个装饰器。

四. 结论

numba对python代码运行速度有巨大的提升,这极大的促进了大数据时代的python数据分析能力,对数据科学工作者来说,这真是一个lucky tool !

当然numba不会对numpy和for循环以外的python代码有很大帮助,你不要指望numba可以帮你加快从数据库取数,这点它真的做不到哈。

参考:https://numba.readthedocs.io/en/stable/user/5minguide.html

Numba witch makes Python code fast相关推荐

  1. python code for solving eigenvalue problem by Jacobi’s method的代码

    将开发过程比较重要的代码段收藏起来,如下的代码段是关于python code for solving eigenvalue problem by Jacobi's method的代码. ''' lam ...

  2. PEP 8 – Style Guide for Python Code

    PEP 8 – Style Guide for Python Code PEP 8–Python编码规范 原文地址:https://www.python.org/dev/peps/pep-0008/ ...

  3. python code mudule,pipe,stdin,stdou,IMPORTANT

    python code mudule,pipe,stdin,stdou,IMPORTANT http://docs.python.org/library/code.html http://codeid ...

  4. PEP 8 -- Style Guide for Python Code。Python 代码规范。

    PEP 8 – Style Guide for Python Code 文章目录 PEP 8 -- Style Guide for Python Code 代码规范. PEP8 (pycodestyl ...

  5. 用Numba加速OpenCV Python视频处理代码,提升6.5倍性能

    使用Numba对OpenCV Python视频处理代码加速.性能提升6.5倍 1.目标问题: 在 OpenCV Python 中视频处理是比较耗资源的,从而造成画面卡顿,如果跳帧处理可能造成丢失关键数 ...

  6. 在翻译PEP8中学习 -- Style Guide for Python Code

    翻译了好久, 终于把这篇文档翻完了, 学到很多. 自从考研结束后就没有翻译过文章了, 一开始还以为考研英语78分的我翻译能力还可以, 结果打脸. 凡是得练习啊! 官方原文: PEP8 Style Gu ...

  7. PEP8-python代码样式指南(Style Guide for Python Code)

    文章目录 介绍(Introduction) 尽信书不如无书(A Foolish Consistency is the Hobgoblin of Little Minds) 代码布局(Code Lay- ...

  8. 爬虫-爬取感兴趣图片(python code 直接运行)

    代码只要在pycharm,使用python解释器就能爬取感兴趣的图片.(不要使用代理,否则下不了) 1.code import requests import re import osheaders ...

  9. vs code python插件_vs code Python code runner配置 , 飞跃|Fly

    今天谈一谈vs code Python开发时遇到的一个坑,它就是一款号称万能插件:code runner.先来看看专业介绍:见下图 "万能语言环境" "不搭建开发环境&q ...

最新文章

  1. Node.js与Sails~方法拦截器policies
  2. 深度解析容器化技术在广发证券交易系统的应用
  3. json数据解析详解---代码每行进行分析
  4. BZOJ2252(BFS水题)
  5. android中AndroidManifest.xml 的解析 (转)
  6. 动态库(共享库)的制作和使用
  7. 基于xml技术的操作
  8. python怎么查看网页编码格式_怎么用python爬取网页文字?
  9. 单例模式中的多线程分析synchronized
  10. Flutter功能 如何给row或column布局添加手势监听?【教你一步搞定】
  11. 是男人就下100层【第二层】——帮美女更衣(2)
  12. Java面试八股文 2021年最新Java面试题及答案汇总
  13. 支持向量机的原理与实践
  14. VS中的debug和releasse版本的区别
  15. 51单片机学习笔记7 -- 超声波测距
  16. 《鹊桥仙·纤云弄巧》 秦观
  17. 低延迟平价游戏蓝牙耳机推荐,2021值得入手的五款品牌蓝牙耳机
  18. 今天出门你查老黄历了吗?包括万年历在内的超多免费可用 API 推荐(一)
  19. 如何把图片背景设置透明色?如何批量图片去底色?
  20. 电子签名第三方服务平台,如何保障电子合同安全性的?

热门文章

  1. 2021年,开发者的落日
  2. c 语言解析png图片文件信息,利用C/C++二进制读写png文件的方法示例
  3. 阿里CTO程立:好的架构师,都是写代码写出来的!
  4. 那些短短的经典流行语录
  5. 蓝桥杯 ALGO-1005 数字游戏 python
  6. PHP开源网站管理系统
  7. 利用Python实现直播弹幕自动发送小程序~
  8. 斗鱼 H5 直播原理解析,它是如何省了 80% 的 CDN 流量?
  9. 熟悉面试中常见的的 web 安全问题
  10. IAR for 8051编译,仿真,下载问题