Numba witch makes Python code fast
一. 前言: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相关推荐
- python code for solving eigenvalue problem by Jacobi’s method的代码
将开发过程比较重要的代码段收藏起来,如下的代码段是关于python code for solving eigenvalue problem by Jacobi's method的代码. ''' lam ...
- 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/ ...
- python code mudule,pipe,stdin,stdou,IMPORTANT
python code mudule,pipe,stdin,stdou,IMPORTANT http://docs.python.org/library/code.html http://codeid ...
- PEP 8 -- Style Guide for Python Code。Python 代码规范。
PEP 8 – Style Guide for Python Code 文章目录 PEP 8 -- Style Guide for Python Code 代码规范. PEP8 (pycodestyl ...
- 用Numba加速OpenCV Python视频处理代码,提升6.5倍性能
使用Numba对OpenCV Python视频处理代码加速.性能提升6.5倍 1.目标问题: 在 OpenCV Python 中视频处理是比较耗资源的,从而造成画面卡顿,如果跳帧处理可能造成丢失关键数 ...
- 在翻译PEP8中学习 -- Style Guide for Python Code
翻译了好久, 终于把这篇文档翻完了, 学到很多. 自从考研结束后就没有翻译过文章了, 一开始还以为考研英语78分的我翻译能力还可以, 结果打脸. 凡是得练习啊! 官方原文: PEP8 Style Gu ...
- PEP8-python代码样式指南(Style Guide for Python Code)
文章目录 介绍(Introduction) 尽信书不如无书(A Foolish Consistency is the Hobgoblin of Little Minds) 代码布局(Code Lay- ...
- 爬虫-爬取感兴趣图片(python code 直接运行)
代码只要在pycharm,使用python解释器就能爬取感兴趣的图片.(不要使用代理,否则下不了) 1.code import requests import re import osheaders ...
- vs code python插件_vs code Python code runner配置 , 飞跃|Fly
今天谈一谈vs code Python开发时遇到的一个坑,它就是一款号称万能插件:code runner.先来看看专业介绍:见下图 "万能语言环境" "不搭建开发环境&q ...
最新文章
- Node.js与Sails~方法拦截器policies
- 深度解析容器化技术在广发证券交易系统的应用
- json数据解析详解---代码每行进行分析
- BZOJ2252(BFS水题)
- android中AndroidManifest.xml 的解析 (转)
- 动态库(共享库)的制作和使用
- 基于xml技术的操作
- python怎么查看网页编码格式_怎么用python爬取网页文字?
- 单例模式中的多线程分析synchronized
- Flutter功能 如何给row或column布局添加手势监听?【教你一步搞定】
- 是男人就下100层【第二层】——帮美女更衣(2)
- Java面试八股文 2021年最新Java面试题及答案汇总
- 支持向量机的原理与实践
- VS中的debug和releasse版本的区别
- 51单片机学习笔记7 -- 超声波测距
- 《鹊桥仙·纤云弄巧》 秦观
- 低延迟平价游戏蓝牙耳机推荐,2021值得入手的五款品牌蓝牙耳机
- 今天出门你查老黄历了吗?包括万年历在内的超多免费可用 API 推荐(一)
- 如何把图片背景设置透明色?如何批量图片去底色?
- 电子签名第三方服务平台,如何保障电子合同安全性的?