电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

如何讓python的運行速度得到提升

瀏覽:3日期:2022-07-18 10:49:18

python一直被病垢運行速度太慢,但是實際上python的執行效率并不慢,慢的是python用的解釋器Cpython運行效率太差。

“一行代碼讓python的運行速度提高100倍”這絕不是嘩眾取寵的論調。

我們來看一下這個最簡單的例子,從1一直累加到1億。

最原始的代碼:

import timedef foo(x,y): tt = time.time() s = 0 for i in range(x,y): s += i print(’Time used: {} sec’.format(time.time()-tt)) return sprint(foo(1,100000000))

結果

Time used: 6.779874801635742 sec4999999950000000

是不是快了100多倍呢?

那么下面就分享一下“為啥numba庫的jit模塊那么牛掰?”

NumPy的創始人Travis Oliphant在離開Enthought之后,創建了CONTINUUM,致力于將Python大數據處理方面的應用。最近推出的Numba項目能夠將處理NumPy數組的Python函數JIT編譯為機器碼執行,從而上百倍的提高程序的運算速度。

Numba項目的主頁上有Linux下的詳細安裝步驟。編譯LLVM需要花一些時間。

Windows用戶可以從Unofficial Windows Binaries for Python Extension Packages下載安裝LLVMPy、meta和numba等幾個擴展庫。

下面我們看一個例子:

import numba as nbfrom numba import jit@jit(’f8(f8[:])’)def sum1d(array): s = 0.0 n = array.shape[0] for i in range(n): s += array[i] return simport numpy as nparray = np.random.random(10000)%timeit sum1d(array)%timeit np.sum(array)%timeit sum(array)10000 loops, best of 3: 38.9 us per loop10000 loops, best of 3: 32.3 us per loop100 loops, best of 3: 12.4 ms per loop

numba中提供了一些修飾器,它們可以將其修飾的函數JIT編譯成機器碼函數,并返回一個可在Python中調用機器碼的包裝對象。為了能將Python函數編譯成能高速執行的機器碼,我們需要告訴JIT編譯器函數的各個參數和返回值的類型。我們可以通過多種方式指定類型信息,在上面的例子中,類型信息由一個字符串’f8(f8[:])’指定。其中’f8’表示8個字節雙精度浮點數,括號前面的’f8’表示返回值類型,括號里的表示參數類型,’[:]’表示一維數組。因此整個類型字符串表示sum1d()是一個參數為雙精度浮點數的一維數組,返回值是一個雙精度浮點數。

內容擴展:

Python運行速度提升

相比較C,C++,python一直被抱怨運行速度很慢,實際上python的執行效率并不慢,而是解釋器Cpython運行效率很差。

通過使用numba庫的jit可以讓python的運行速度提高百倍以上。

同諾簡單累加,相乘的例子,可以看出。

#!/usr/bin/env python# encoding: utf-8’’’@author: Victor@Company:華中科技大學電氣學院聚變與等離子研究所@version: V1.0@contact: 1650996069@qq.com 2018--2020@software: PyCharm2018@file: quickPython3.py@time: 2018/9/21 20:54@desc:使用numba的jit是python代碼運行速度提高100倍左右’’’’’’平常運行’’’import timedef add(x,y): tt = time.time() s = 0 for i in range(x,y):s += i print(’The time used: {} seconds’.format(time.time()-tt)) return s add(1,100000000)##########結果################ D:Python3python.exe D:/Pycharm2018Works/InsteringPython3/SomeBasics/quickPython3.py# The time used: 6.712835788726807 seconds# Process finished with exit code 0

’’’調用numba運行’’’import timefrom numba import jit@jitdef add(x,y): tt = time.time() s = 0 for i in range(x,y):s += i print(’The time used: {} seconds’.format(time.time()-tt)) return s add(1,100000000)##########結果################ D:Python3python.exe D:/Pycharm2018Works/InsteringPython3/SomeBasics/quickPython3.py# The time used: 0.06396007537841797 seconds# # Process finished with exit code 0

Numba模塊能夠將處理NumPy數組的Python函數JIT編譯為機器碼執行,從而上百倍的提高程序的運算速度。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 扬子叉车厂家_升降平台_电动搬运车|堆高车-扬子仓储叉车官网 | 回转炉,外热式回转窑,回转窑炉-淄博圣元窑炉工程有限公司 | 【ph计】|在线ph计|工业ph计|ph计厂家|ph计价格|酸度计生产厂家_武汉吉尔德科技有限公司 | 车间除尘设备,VOCs废气处理,工业涂装流水线,伸缩式喷漆房,自动喷砂房,沸石转轮浓缩吸附,机器人喷粉线-山东创杰智慧 | 不锈钢复合板厂家_钛钢复合板批发_铜铝复合板供应-威海泓方金属复合材料股份有限公司 | 石膏基自流平砂浆厂家-高强石膏基保温隔声自流平-轻质抹灰石膏粉砂浆批发-永康市汇利建设有限公司 | Dataforth隔离信号调理模块-信号放大模块-加速度振动传感器-北京康泰电子有限公司 | 南方珠江-南方一线电缆-南方珠江科技电缆-南方珠江科技有限公司 南汇8424西瓜_南汇玉菇甜瓜-南汇水蜜桃价格 | 磁力抛光研磨机_超声波清洗机厂家_去毛刺设备-中锐达数控 | 河北中仪伟创试验仪器有限公司是专业生产沥青,土工,水泥,混凝土等试验仪器的厂家,咨询电话:13373070969 | 高清视频编码器,4K音视频编解码器,直播编码器,流媒体服务器,深圳海威视讯技术有限公司 | 钢衬四氟管道_钢衬四氟直管_聚四氟乙烯衬里管件_聚四氟乙烯衬里管道-沧州汇霖管道科技有限公司 | pbootcms网站模板|织梦模板|网站源码|jquery建站特效-html5模板网 | 粉末冶金-粉末冶金齿轮-粉末冶金零件厂家-东莞市正朗精密金属零件有限公司 | 冲锋衣滑雪服厂家-冲锋衣定制工厂-滑雪服加工厂-广东睿牛户外(S-GERT) | 精密光学实验平台-红外粉末压片机模具-天津博君| 热熔胶网膜|pes热熔网膜价格|eva热熔胶膜|热熔胶膜|tpu热熔胶膜厂家-苏州惠洋胶粘制品有限公司 | 创绿家招商加盟网-除甲醛加盟-甲醛治理加盟-室内除甲醛加盟-创绿家招商官网 | 四川职高信息网-初高中、大专、职业技术学校招生信息网 | 红酒招商加盟-葡萄酒加盟-进口红酒代理-青岛枞木酒业有限公司 | 铣刨料沥青破碎机-沥青再生料设备-RAP热再生混合料破碎筛分设备 -江苏锡宝重工 | 老房子翻新装修,旧房墙面翻新,房屋防水补漏,厨房卫生间改造,室内装潢装修公司 - 一修房屋快修官网 | 消防设施操作员考试报名时间,报名入口,报考条件 | 定制异形重型钢格栅板/钢格板_定做踏步板/排水沟盖板_钢格栅板批发厂家-河北圣墨金属制品有限公司 | 深圳善跑体育产业集团有限公司_塑胶跑道_人造草坪_运动木地板 | 安规_综合测试仪,电器安全性能综合测试仪,低压母线槽安规综合测试仪-青岛合众电子有限公司 | 酶联免疫分析仪-多管旋涡混合仪|混合器-莱普特科学仪器(北京)有限公司 | 电磁流量计_智能防腐防爆管道式计量表-金湖凯铭仪表有限公司 | 密集架|电动密集架|移动密集架|黑龙江档案密集架-大量现货厂家销售 | 全自动定氮仪-半自动凯氏定氮仪厂家-祎鸿仪器 | 除湿机|工业除湿机|抽湿器|大型地下室车间仓库吊顶防爆除湿机|抽湿烘干房|新风除湿机|调温/降温除湿机|恒温恒湿机|加湿机-杭州川田电器有限公司 | 蜘蛛车-高空作业平台-升降机-高空作业车租赁-臂式伸缩臂叉装车-登高车出租厂家 - 普雷斯特机械设备(北京)有限公司 | 昆明网络公司|云南网络公司|昆明网站建设公司|昆明网页设计|云南网站制作|新媒体运营公司|APP开发|小程序研发|尽在昆明奥远科技有限公司 | 全自动变压器变比组别测试仪-手持式直流电阻测试仪-上海来扬电气 | 深圳网站建设-高端企业网站开发-定制网页设计制作公司 | LZ-373测厚仪-华瑞VOC气体检测仪-个人有毒气体检测仪-厂家-深圳市深博瑞仪器仪表有限公司 | 小区健身器材_户外健身器材_室外健身器材_公园健身路径-沧州浩然体育器材有限公司 | 深圳VI设计-画册设计-LOGO设计-包装设计-品牌策划公司-[智睿画册设计公司] | 实验室装修_实验室设计_实验室规划设计- 上海广建净化工程公司 | 不锈钢闸阀_球阀_蝶阀_止回阀_调节阀_截止阀-可拉伐阀门(上海)有限公司 | 在线浊度仪_悬浮物污泥浓度计_超声波泥位计_污泥界面仪_泥水界面仪-无锡蓝拓仪表科技有限公司 |