问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

想提高Python的运行效率,有什么方法吗

发布网友 发布时间:2022-04-18 03:05

我来回答

2个回答

懂视网 时间:2022-04-18 07:27

说道现在最流行的语言,就不得不提python。可是python虽然容易上手,但速度却有点感人。如何用简单的方法让python加速到近乎可以媲美C的速度呢?

今天来就来谈谈numba这个宝贝。对你没看错,不是numpy,就是numba。(推荐学习:Python视频教程)

numba是Python的即时编译器,它最适用于使用NumPy数组和函数以及循环的代码。使用Numba的最常用方法是通过其装饰器集合,可以应用于您的函数来指示Numba编译它们。当调用Numba修饰函数时,它被编译为机器代码“及时”执行,并且您的全部或部分代码随后可以以本机机器代码速度运行!

在面对一个计算project的时候,我们最容易想到的就是直接码代码,最后写出一个超长的程序。这样一来,一旦出错往往就需要花很多时间定位问题。

有一个简单的办法解决这个问题,就是定义各种各样的函数,把任务分解成很多小部分。因为每个函数都不是特别复杂,并且在写好的时候就可以随时检查,因此简洁的主程序一旦出问题就很容易定位并解决。面向对象编程的思想就是基于函数。

写好函数之后,还可以使用装饰器(decorator)让它变得强大。装饰器本身是一个函数,不过是函数的函数,目的是增加函数的功能。比如首先定义一个输出当前时间的函数,再定义一个规定时间格式的函数,把后一个函数作用在前一个函数上,就是一个装饰器,作用是用特定格式输出当前时间。

>Numba的优势

1.简单,往往只要1行代码就有惊喜;

2.对循环(loop)有奇效,而往往在科学计算中限制python速度的就是loop;

3.兼容常用的科学计算包,如numpy、cmath等;

4.可以创建ufunc;

5.会自动调整精度,保证准确性。

如何使用numba

针对上面提到的numba的优势,我来进行逐一介绍。首先导入numba

import numba as nb

只用1行代码即可加速,对loop有奇效

因为numba内置的函数本身是个装饰器,所以只要在自己定义好的函数前面加个@nb.jit()就行,简单上手。下面以一个求和函数为例

# 用numba加速的求和函数@nb.jit()def nb_sum(a):
 Sum = 0
 for i in range(len(a)):
 Sum += a[i]
 return Sum# 没用numba加速的求和函数def py_sum(a):
 Sum = 0
 for i in range(len(a)):
 Sum += a[i]
 return Sum

来测试一下速度

import numpy as np
a = np.linspace(0,100,100) # 创建一个长度为100的数组

%timeit np.sum(a) # numpy自带的求和函数
%timeit sum(a) # python自带的求和函数
%timeit nb_sum(a) # numba加速的求和函数
%timeit py_sum(a) # 没加速的求和函数

更多Python相关技术文章,请访问Python教程栏目进行学习!

热心网友 时间:2022-04-18 04:35

1,换一台快一点的电脑
2,可以考虑直接用汇编。用自己的方式来编写程序。但如果你这样做了,到最后可能会说:“python是世界上最好的语言!”……
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
抖音弹幕怎么关掉?怎么关闭抖音弹幕? 惠普LaserJet P3005D是否支持B5纸的双面打印? word打印出图片总是缺一部分怎么办-word打印图片不完整怎么解决_百度... 理想one哪里产的车辆? 抚州抚州ONE在哪里? one地址在哪里? 如何在图片上写字(如何在图片上添加文字) 网商贷为什么钱没到账 高级经济师职称怎么评 高级经济师需要评审吗 南京公交卡的购买地点 南京火车站那可以给公交卡充值吗 南京尧化门地区哪里能充公交卡? GIA和国检钻石有什么区别?国检比GIA严格吗? 英雄联盟几级可以用周免 LOL本周周免英雄是什么? lol周免英雄是每个区都一样吗,什么时候会更新,星期一吗, LOL本期周免是什么? 英雄联盟这周周免英雄有哪些? lol本周周免有那些? LOL2月13日周免英雄有哪些 LOL7月15日周免英雄有哪些?LOL7月15日免费英雄一览 百里杜鹃节是哪天? lol7月28日周免更新什么是每周免费英雄 卤腥鱼的做法,卤腥鱼怎么做好吃,卤腥鱼的家常做法 lol周免几点更新 幼儿园语言区角设计图片:成语接龙 求卤干鱼嘴的做法? 中国百里杜鹃那几个字是谁题的 猜一猜下周LOL周免英雄会有什么 访客登记管理系统哪家公司做的好? 门卫登记系统怎样解决不同门进出的访客登记? 有什么高端的访客登记管理系统? 不知道中全清茂访客登记管理系统使用方便吗? 铁路考试体会心得. 学校电脑室u盘拒绝访问怎么办? U盘被拒绝访问,请问是为什么? 学校机房u盘禁止访问 u盘拒绝访问怎么办 u盘拒绝访问 追一个女生太累了? 为什么现在追女生会感觉那么心累呢? 追求自己喜欢的女生太累了怎么办? 接电话怎么录音苹果手机 闻一多先生的说和做的教学建议 老师上课的ppt,我想要一份,应该怎么弄?只知道需要U盘,具体该怎么弄? beastx连接安卓手机音质差多少? 闻一多先生的说和做 闻一多先生作为学者和作为革命者的说和做有何不同... 闻一多先生的说和做前后期有什么变化与相同点 幻灯片怎么搞啊