vscode开发python 必备插件,python编写自动化脚本
更快的运行python,入门2,Numba2.1配置文件2.2安装2.3代码示例3,用Numba 4代替代码练习3.1numba3.2,总结。
1.介绍
小屌丝:tzdyg,今天被鄙视了。
小鱼你的脸被鄙视了?
小屌丝:还能正常聊天吗?
小鱼:好的。我已经在认真的说了。那你为什么被鄙视?
小屌丝:今天一个小菜鸟说C语言是世界上最快的语言。我不认同~ ~。
小鱼有什么问题?我不认为这有什么缺点。
小屌丝:tzdyg,妹子说谁快,她就和YYSX在一起。
小鱼:那……这个……我同意。我也不同意。
看样子,小姐姐是动力的源头!
2.关于Numba的Numba的详细文档可以点击Numba传送门转发。
但是,文档就是文档。简单介绍一下Numba。
2.1概述numba是一个JIT编译器,可以将python函数编译成机器码。用numba(仅数组操作)编译的Python代码可以以接近C或FORTRAN语言的速度运行。
小屌丝:听起来不错。用那个很难吗?
小鱼:不难。这有多简单,请看下文:
三不要:
不需要更换Python解析器或者单独编译,C/C编译器一需要:
把Numba提供的decorator放到Python函数小屌丝上就行了:哎呦~总结一下就可以了。
小鱼:什么都不说,打断我的思路!
2.2在代码中安装之前,必须验证是否已经有一个名为numba的库。
如果没有,回想一下。有几种方法吗?
358 www.Sina.com/http://www.Sina.com/http://www.Sina.com/If你可以用任何方法安装它,你可以。
这里以小鱼直接单独安装为例:
www.Sina.com pipinstallnumba 3358号
《Python3:我低调的只用一行代码,就导入Python所有库!》 ;
《Python3,选择Python自动安装第三方库,从此跟pip说拜拜!!》
2.3代码示例安装numba库后,请直接访问代码并显示速度…
看看我们的一行代码导入Python所有库能不能跑快一点!
pip install 手动安装
我们来看看调用jit。
#-coding:utf-8-# @ time:2021-08-08 # @ author 3360 car _ djfromnumportjitimportrandom #是用于调用jit decorator的defmot_pi(nsamples)。ACC=0 for iinrange(n samples):x=random . random)(y=random . random))
Numba是专门为科学计算设计的。当与NumPy一起使用时,它将为每个数组数据类型生成特殊的代码,重点是优化性能。
pip.main自动安装
# -编码:utf-8 - # @时间:2021-08-08 # @作者:Carl _ DJ @ numba。JIT (no python=true,parallla ite
Br小鱼:看不懂。没关系。毕竟,不是每个人都对科学计算感兴趣。小屌丝:你在侮辱我!小鱼:你不配~ ~
如果你不能理解这个例子,不要灰心。
接下来,我们来做点更大的。
3、代码实战以上代码是热身~ ~
接下来,我们用一个严肃的例子来看看Numba跑的有多快。
有了苏神的速度,还担心妹子不跟咱YYXS吗!!
举个例子
我们用和不用Numba找出1000个W以内的所有质数。
3.1不要用Numba。我们不用Numba。让我们看看需要多长时间。上代码
# -*-编码:utf-8-*-# @时间:2021-08-08 # @作者:Carl _ DJ import math import Time def is _ prime(num):if num==2:num=1或not num % 2:返回False for div in range(3,int(math.sqrt(num) 1,2): if not num % div:返回False返回True def run _ program(N):total=0 for I in range(N):if is _ prime(I):total=1返回total _ _
1000W以内的质数都是:664579耗时:245.93426966667175s运行结果:嗯,这个运行速度有点……小屌丝:别灰心,我们不是还有Numba吗?
3.2使用Numba我们使用Numba来看看需要多长时间。小鱼
#-*-编码:UTF-8-*-# @时间:2021-08-08 # @作者:Carl _ DJ Import Math Import Time from Numba Import Njit # @ Njit相当于@ JIT(nopython=True)@ Njit def is _ prime(num):if num==2:num=1或not num % 2:返回False for div in range(3,int(math.sqrt(num) 1),2): if not num% div:返回False返回true # #普通循环计算# @ njit # def run _ program(N):# total=0 # #普通范围循环处理# for I in range(N):# if is _ prime(I):# total=1 # return total #使用Numba的prange进行并发循环计算@ njit(parallel=true)def run _ program(N):total=0 #使用Numba提供的prange参数进行并行计算i in prange(N): if is_prime(i) :total=1 return total _ _ name _ _= _ _ main _ _ :n=1000000 start=time . time()total=run _ program(n)end=time . time()print(f 1000 w以内的所有质数都是:{total}
1上代码和1000w以内的质数是:664579。耗时:11。S运行结果总质数是64579成本。56579 . 58668666667
未使用Numba的prange运行结果,如下::我的天,有这么神奇吗~使用Numba的prange运行结果,如下::肯定是。小屌丝:tzdyg,tzdyg,它是怎么做到的?小鱼:好吧,我们来看看官方文件是怎么解释的。
小屌丝小鱼,
官方文档解释::原来如此…看来我和小姐姐YYSX今晚有机会了。它读取装饰函数的 Python 字节码,并将其与有关函数输入参数类型的信息结合起来,分析和优化代码,最后使用编译器库(LLVM)针对你的 CPU 生成量身定制的机器代码。每次调用函数时,都会使用此编译版本:就这样!
4.虽然Python是一种带有全局解释器锁的动态语言,但它比其他静态语言要慢,
但是,今天小鱼分享的Numba,又把你心中的火点着了。小屌丝
所以,想了解更多Numba知识,请异步到小鱼。
数到三,启动链接,宝宝们准备好了。
三
2
一个
说归说,闹归闹,官方文档最重要!:http://numba.pydata.org/numba-doc/latest/index.html
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。