最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

通過numba模塊給Python代碼提速的方法詳解

 更新時間:2022年01月13日 10:42:58   作者:三爺帶你飛  
numba是Anaconda公司開發(fā)的針對Python的開源JIT編譯器,用于提供Python版CPU和GPU編程,速度比原生Python快數(shù)十倍。本文將詳細介紹一下numba是如何實現(xiàn)代碼提速的,需要的可以參考一下

簡介:numba是Anaconda公司開發(fā)的針對Python的開源JIT編譯器,用于提供Python版CPU和GPU編程,速度比原生Python快數(shù)十倍。numba是第三方庫,可以在運行時將Python代碼編譯為本地機器指令,而不會強制大幅度的改變普通的Python代碼,使得在部分場景下執(zhí)行Python的效率得到飛速的提升。

工作原理對比:

Python文件執(zhí)行過程

1、.py文件通過解釋器轉(zhuǎn)化為虛擬機可以執(zhí)行的字節(jié)碼(.pyc);字節(jié)碼在虛擬機上執(zhí)行,得到結(jié)果。

2、字節(jié)碼是一種只能運行在虛擬機上的文件,默認后綴.pyc,Python生成.pyc之后一般放在內(nèi)存中繼續(xù)使用,并不是每次都將.pyc文件保存到磁盤上。

而在JIT(Just-In-Time)技術(shù)中,JIT編譯器將Python源代碼.py直接編譯成機器可以執(zhí)行的機器語言(機器碼),就可以直接在CPU等硬件上運行。這樣,JIT就跳過了原來的虛擬機,執(zhí)行速度幾乎與用C語言編程速度無差別。

numba是Anaconda公司開發(fā)的針對Python的開源JIT編譯器。谷歌開源的jax庫也是屬于jit編譯器之一,該模塊則主要應(yīng)用于科學(xué)計算和機器學(xué)習(xí)方向。

安裝:如網(wǎng)絡(luò)限制,請繞道國內(nèi)鏡像豆瓣源,清華源等。pip安裝第三方庫全攻略:普通安裝、安裝whl后綴文件、使用國內(nèi)鏡像安裝

pip install numba

使用方法:

from numba import jit
對函數(shù)進行裝飾@jit(nopython=True)

注意事項:numba只符合部分場景,特殊場景無法使用。例如機器學(xué)習(xí)訓(xùn)練數(shù)據(jù)時,不能簡單的進行裝飾使用,否則會拋出異常。

源碼:

from numba import jit
import datetime


def calc_sum1(loop):
? ? n = 0
? ? for i in range(loop):
? ? ? ? for j in range(loop):
? ? ? ? ? ? n += j
? ? return n


@jit(nopython=True)
def calc_sum2(loop):
? ? n = 0
? ? for i in range(loop):
? ? ? ? for j in range(loop):
? ? ? ? ? ? n += j
? ? return n


@jit(nopython=True)
def calc_sum2(loop):
? ? n = 0
? ? for i in range(loop):
? ? ? ? for j in range(loop):
? ? ? ? ? ? n += j
? ? return n


if __name__ == '__main__':
? ? print(datetime.datetime.now())
? ? r1 = calc_sum1(10000)
? ? print(r1)
? ? print(datetime.datetime.now())

? ? print("*" * 30)
? ? print(datetime.datetime.now())
? ? r2 = calc_sum2(10000)
? ? print(r2)
? ? print(datetime.datetime.now())

結(jié)果對比:原始代碼執(zhí)行需要花費5秒左右,而使用numba裝飾后僅需300毫秒左右,提升10倍有余。如果loop設(shè)置的參數(shù)更長,numba裝飾后執(zhí)行的結(jié)果更佳。

到此這篇關(guān)于通過numba模塊給Python代碼提速的方法詳解的文章就介紹到這了,更多相關(guān)Python numba代碼提速內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python+OpenCV檢測燈光亮點的實現(xiàn)方法

    Python+OpenCV檢測燈光亮點的實現(xiàn)方法

    這篇文章主要介紹了Python+OpenCV檢測燈光亮點的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Django中使用Celery的方法步驟

    Django中使用Celery的方法步驟

    這篇文章主要介紹了Django中使用Celery,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Vs Code中8個好用的python 擴展插件

    Vs Code中8個好用的python 擴展插件

    這篇文章主要介紹了Vs Code中8個好用的python 擴展插件,幫助大家更好的利用vs code進行python開發(fā),感興趣的朋友可以了解下
    2020-10-10
  • 通過實例解析python and和or使用方法

    通過實例解析python and和or使用方法

    這篇文章主要介紹了通過實例解析python and和or使用方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • python 通過類中一個方法獲取另一個方法變量的實例

    python 通過類中一個方法獲取另一個方法變量的實例

    今天小編就為大家分享一篇python 通過類中一個方法獲取另一個方法變量的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Matplotlib直方圖繪制中的參數(shù)bins和rwidth的實現(xiàn)

    Matplotlib直方圖繪制中的參數(shù)bins和rwidth的實現(xiàn)

    本文主要介紹了Matplotlib直方圖繪制中的參數(shù)bins和rwidth的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-02-02
  • Python生成密碼庫功能示例

    Python生成密碼庫功能示例

    這篇文章主要介紹了Python生成密碼庫功能,涉及Python基于隨機字符串實現(xiàn)的生成密碼功能相關(guān)操作技巧,需要的朋友可以參考下
    2017-05-05
  • 深入理解Python中的函數(shù)參數(shù)傳遞機制

    深入理解Python中的函數(shù)參數(shù)傳遞機制

    在Python中,對于函數(shù)的參數(shù)傳遞,有兩種主要的方式:傳值和傳引用。事實上,Python的參數(shù)傳遞是一種“傳對象引用”的方式,本文呢我們將詳細介紹Python的函數(shù)參數(shù)傳遞機制,這對理解Python編程語言的底層實現(xiàn)以及優(yōu)化你的代碼都非常有幫助
    2023-07-07
  • Python 數(shù)據(jù)結(jié)構(gòu)之旋轉(zhuǎn)鏈表

    Python 數(shù)據(jù)結(jié)構(gòu)之旋轉(zhuǎn)鏈表

    這篇文章主要介紹了Python 數(shù)據(jù)結(jié)構(gòu)之旋轉(zhuǎn)鏈表的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Python編寫生成驗證碼的腳本的教程

    Python編寫生成驗證碼的腳本的教程

    這篇文章主要介紹了Python編寫生成驗證碼的腳本的教程,驗證碼在web編程中幾乎是必備的功能,需要的朋友可以參考下
    2015-05-05

最新評論

台北市| 南陵县| 土默特左旗| 资源县| 宁都县| 修水县| 准格尔旗| 克山县| 海宁市| 合川市| 绥江县| 封开县| 湖南省| 涟源市| 民县| 绥德县| 颍上县| 涿鹿县| 崇信县| 谷城县| 清河县| 平武县| 大丰市| 华宁县| 金湖县| 富民县| 乌兰察布市| 嘉义县| 海口市| 阳城县| 乐平市| 稻城县| 晋州市| 婺源县| 宾阳县| 洛浦县| 常熟市| 城口县| 刚察县| 正蓝旗| 东至县|