欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

工作原理對比:

Python文件執(zhí)行過程

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

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

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

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

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

pip install numba

使用方法:

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

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

源碼:

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í)行需要花費(fèi)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發(fā)送網(wǎng)絡(luò)請求(requests)

    Python發(fā)送網(wǎng)絡(luò)請求(requests)

    這篇文章主要介紹了Python發(fā)送網(wǎng)絡(luò)請求(requests),具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • python 批量修改/替換數(shù)據(jù)的實(shí)例

    python 批量修改/替換數(shù)據(jù)的實(shí)例

    今天小編就為大家分享一篇python 批量修改/替換數(shù)據(jù)的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python類中的魔法方法之 __slots__原理解析

    Python類中的魔法方法之 __slots__原理解析

    這篇文章主要介紹了Python類中的魔法方法之 __slots__詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • python實(shí)現(xiàn)對服務(wù)器腳本敏感信息的加密解密功能

    python實(shí)現(xiàn)對服務(wù)器腳本敏感信息的加密解密功能

    這篇文章主要介紹了python實(shí)現(xiàn)對服務(wù)器腳本敏感信息的加密解密功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • python爬取微博評論的實(shí)例講解

    python爬取微博評論的實(shí)例講解

    在本篇文章里小編給大家整理的是一篇關(guān)于python爬取微博評論的實(shí)例講解,有興趣的朋友們可以學(xué)習(xí)下。
    2021-01-01
  • 簡述 Python 的類和對象

    簡述 Python 的類和對象

    這篇文章主要介紹了Python 的類和對象的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-08-08
  • Python的線程之線程同步

    Python的線程之線程同步

    這篇文章主要為大家介紹了Python線程同步,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • Python decorator攔截器代碼實(shí)例解析

    Python decorator攔截器代碼實(shí)例解析

    這篇文章主要介紹了Python decorator攔截器代碼實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Flask接口簽名sign原理與實(shí)例代碼淺析

    Flask接口簽名sign原理與實(shí)例代碼淺析

    這篇文章主要介紹了Flask接口簽名sign原理與實(shí)例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-02-02
  • django項(xiàng)目中使用云片網(wǎng)發(fā)送短信驗(yàn)證碼的實(shí)現(xiàn)

    django項(xiàng)目中使用云片網(wǎng)發(fā)送短信驗(yàn)證碼的實(shí)現(xiàn)

    這篇文章主要介紹了django項(xiàng)目中使用云片網(wǎng)發(fā)送短信驗(yàn)證碼的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01

最新評論