numba提升python運(yùn)行速度的實(shí)例方法
大家都知道Python運(yùn)行速度很慢,但是輪子多,因此用戶十分廣泛,在各種領(lǐng)域上都能用到Python,但是最頭疼的還是,解決運(yùn)行速度問(wèn)題,因此這里給大家介紹的是numba,是基本是等于再造語(yǔ)言。但是支持的numpy函數(shù)并不多。要讓能jit的函數(shù)多起來(lái)才行。下面就詳細(xì)介紹使用numba提升python運(yùn)行速度方法。
numba簡(jiǎn)介:
能夠?qū)崿F(xiàn)將python函數(shù)編譯為機(jī)器代碼,提高運(yùn)行速度。
工作作用:
給python換一種編譯器
使用numba:
1、導(dǎo)入numba及其編譯器
import numpy as np import numba from numba import jit
2、傳入numba裝飾器jit,編寫函數(shù)
@jit(nopython=True) def go_fast(a): trace = 0 for i in range(a.shape[0]): trace += np.tanh(a[i, i]) return a + trace
3、函數(shù)傳入實(shí)參
x = np.arange(100).reshape(10, 10) go_fast(x)
4、加速的函數(shù)執(zhí)行時(shí)間
% timeit go_fast(x)
知識(shí)點(diǎn)擴(kuò)展:
numba適合科學(xué)計(jì)算
numpy是為面向numpy數(shù)組的計(jì)算任務(wù)而設(shè)計(jì)的。
在面向數(shù)組的計(jì)算任務(wù)中,數(shù)據(jù)并行性對(duì)于像GPU這樣的加速器是很自然的。Numba了解NumPy數(shù)組類型,并使用它們生成高效的編譯代碼,用于在GPU或多核CPU上執(zhí)行。特殊裝飾器還可以創(chuàng)建函數(shù),像numpy函數(shù)那樣在numpy數(shù)組上廣播。
什么情況下使用numba呢?
- 使用numpy數(shù)組做大量科學(xué)計(jì)算時(shí)
- 使用for循環(huán)時(shí)
到此這篇關(guān)于numba提升python運(yùn)行速度的實(shí)例方法的文章就介紹到這了,更多相關(guān)如何使用numba提升python運(yùn)行速度內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python?Web開(kāi)發(fā)通信協(xié)議WSGI?uWSGI?uwsgi使用對(duì)比全面介紹
這篇文章主要為大家介紹了Python?Web開(kāi)發(fā)通信協(xié)議WSGI?uWSGI?uwsgi使用對(duì)比全面介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12requests.gPython?用requests.get獲取網(wǎng)頁(yè)內(nèi)容為空?’?’問(wèn)題
這篇文章主要介紹了requests.gPython?用requests.get獲取網(wǎng)頁(yè)內(nèi)容為空?’?’,溫行首先舉例說(shuō)明,具有一定得參考價(jià)值,需要的小伙伴可以參考一下2022-01-01探索Python元類與class語(yǔ)句協(xié)議掌握類的控制權(quán)
這篇文章主要介紹了通過(guò)Python元類與class語(yǔ)句協(xié)議掌握類的控制權(quán)探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01Python中元組的基礎(chǔ)介紹及常用操作總結(jié)
元組是一種不可變序列。元組變量的賦值要在定義時(shí)就進(jìn)行,這就像C語(yǔ)言中的const變量或是C++的引用,定義時(shí)賦值之后就不允許有修改。元組存在的意義是:元組在映射中可以作為鍵使用,因?yàn)橐WC鍵的不變性。元組作為很多內(nèi)置函數(shù)和方法的返回值存在2021-09-09django mysql數(shù)據(jù)庫(kù)及圖片上傳接口詳解
這篇文章主要介紹了django mysql數(shù)據(jù)庫(kù)及圖片上傳接口詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07PyQT5 QTDesigner窗口及組成的實(shí)現(xiàn)
這篇文章主要介紹了PyQT5 QTDesigner窗口及組成的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04python錯(cuò)誤:AttributeError: ''module'' object has no attribute
這篇文章主要介紹了python錯(cuò)誤:AttributeError: 'module' object has no attribute 'setdefaultencoding'問(wèn)題的解決方法,需要的朋友可以參考下2014-08-08如何將DataFrame數(shù)據(jù)寫入csv文件及讀取
在Python中進(jìn)行數(shù)據(jù)處理時(shí),經(jīng)常會(huì)用到CSV文件的讀寫操作,當(dāng)需要將list數(shù)據(jù)保存到CSV文件時(shí),可以使用內(nèi)置的csv模塊,若data是一個(gè)list,saveData函數(shù)能夠?qū)ist中每個(gè)元素存儲(chǔ)在CSV文件的一行,但需要注意的是,默認(rèn)情況下讀取出的CSV數(shù)據(jù)類型為str2024-09-09