python提高运行速度的方法

  • 时间:
  • 1786人关注

使用numba。numba是Python的即时编译器,它最适用于使用NumPy数组和函数以及循环的代码。使用Numba的最常用方法是通过其装饰器集合,可以应用于您的函数来指示Numba编译它们。,另外这篇文章主要知识点是关于python、Python的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子资料:

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

 

python如何提高运行速度

今天来就来谈谈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教程栏目进行学习!

以上就是python如何提高运行速度的详细内容,更多请关注码农之家其它相关文章!


上一篇:python里dict变成list的实例方法

下一篇:python输入字符串的方法

相关内容

  • Python如何限制输出日志的大小

    这篇文章主要介绍了Python 限制输出日志的大小方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    05-06Python限制日志大小

    阅读更多
  • python实现可视化的MD5、sha256哈希加密小工具

    这篇文章主要介绍了详解python实现可视化的MD5、sha256哈希加密小工具,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    04-07python MD5、sha256哈希加密

    阅读更多
  • Python gevent协程切换实现方法

    这篇文章主要介绍了Python gevent协程切换实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    04-07Python gevent协程切换

    阅读更多
  • python/golang实现循环链表的代码

    这篇文章主要介绍了python/golang如何实现循环链表,帮助大家更好的理解和学习循环链表的实现方法,感兴趣的朋友可以了解下

    04-07python/golang 循环链表

    阅读更多
  • 2020版Python学习路线图(附学习资料)

    这篇文章主要介绍了Python学习路线图(2020最新版),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    04-07Python学习路线图

    阅读更多
  • Python3标准库

    Python3标准库

    这书由杰出Python权威专家亲身绘制,Python語言的关键开发者鼎力推荐。 对程序猿来讲,标准库与語言自身 一样关键,它就象1个百宝箱,能为各种各样普遍的每日任务出示极致的解决方法,因

    大小:148.9 MBPython

    点击下载
  • Python带我起飞:入门、进阶、商业实战

    Python带我起飞:入门、进阶、商业实战

    “教学视频+ 图书+ QQ群交流、答疑”三维学习方案,让Python学习更轻松。赠送教学视频47段,共计429分钟。全书共计42个实例。15位技术专家联合推荐!

    大小:185 MBPython编程

    点击下载
  • 精通Python网络爬虫

    精通Python网络爬虫

    精通Python网络爬虫 这是一本实战性的网络爬虫秘笈,不仅讲解了如何编写爬虫,而且还讲解了流行的网络爬虫的使用。 全书分为4个部分:第壹部分对网络爬虫做了概要性的介绍,主要介绍了

    大小:108.6 MBPython爬虫

    点击下载
  • 编程的乐趣:用Python解算法谜题

    编程的乐趣:用Python解算法谜题

    非常少有入门程序编写的人想要以便程序编写而程序编写,这书自主创新地根据求出趣味的迷题来专家教授用户程序编写,为枯燥乏味的编程学习全过程引入了较强的挑战性,迷题是来源于真

    大小:67 KBPython算法

    点击下载
  • 教孩子学编程:Python语言版

    教孩子学编程:Python语言版

    这是一本教孩子使用Python进行基础程序设计和解决问题的入门图书,针对变量、循环、函数等编程基础概念的介绍,可以帮助年轻的程序员构建所需的技能,适合任何想要通过Python学习编程的读

    大小:45.4MB儿童编程

    点击下载
  • 编写高质量代码:改善Python程序的91个建议

    编写高质量代码:改善Python程序的91个建议

    大小:54.9 MBPython编码

    点击下载
  • Python极客项目编程

    Python极客项目编程

    Python极客项目编程通过14个有趣的项目,帮助和鼓励读者探索Python编程的世界,展示如何用Python来解决各种实际问题,以及如何使用一些流行的Python库,帮助读者掌握实用的Python编程技能。

    大小:6.5 MBPython编程

    点击下载
  • ArcGIS下的Python编程

    ArcGIS下的Python编程

    本书为规划师提供了学习基于ArcGIS的脚本语言Python教材,将对Python语言的讲述与ArcGIS的模块ArcPy相结合,并通过实际案例探讨自然村落选址因子权重评定的遗传算法、基于景观感知敏感度的生态旅游地观光线路自动选址和解读蚁群算法与TSP 问题,理解编程规划设计的方法

    大小:144 MB编程设计

    点击下载
  • Python3程序开发指南

    Python3程序开发指南

    本书全面深入地讲解了Python语言,讲述了构成Python语言的8个关键要素,包含数据类型、控制结构与函数、模块、正则表达式、GUI程序设计等各个方面

    大小:419.2 MBPython

    点击下载

学习笔记