python函數(shù)提速 python函數(shù)提高代碼執(zhí)行速度

python函數(shù)可以提高代碼執(zhí)行速度嗎

不同的編程語(yǔ)言,會(huì)有不同 的緩存策略,例如,通過哈希映射、優(yōu)先級(jí)隊(duì)列等實(shí)現(xiàn)緩存。因此,不同的編程語(yǔ)言,在緩存的解決方案方面具有很大差異,可能需要幾分鐘,也可能需要幾小時(shí)。

石樓網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),石樓網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為石樓1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的石樓做網(wǎng)站的公司定做!

但是,在Python中,標(biāo)準(zhǔn)工具包functools實(shí)現(xiàn)了一種名為L(zhǎng)RU(Least Recently Used)的緩存策略,可以通過傳入?yún)?shù),來設(shè)定緩存最近多少次的計(jì)算結(jié)果,如果傳入?yún)?shù)為None,那么則不緩存。

想用python處理比較大的單色圖片文件,如何提高速度

你好,你可以考慮使用numpy的函數(shù)來做,下面是例子的python代碼

image?=?np.zeros((400,400,3),?dtype="uint8")

raw?=?image.copy()

image[np.where((image==[0,0,0]).all(axis=2))]?=?[255,255,255]

cv2.imshow('Test0',?image)

lower_black?=?np.array([0,0,0],?dtype?=?"uint16")

upper_black?=?np.array([70,70,70],?dtype?=?"uint16")

black_mask?=?cv2.inRange(image,?lower_black,?upper_black)

image[np.where((image?==?[0,0,0]).all(axis?=?2))]?=?[155,255,155]

black_mask[np.where(black_mask?==?[0])]?=?[155]

你把上面的那個(gè)image的數(shù)值改成你需要改的目標(biāo)就可以直接替換了。

用Python 做策略回測(cè),耗時(shí)很長(zhǎng),有什么加速辦法

1. 在動(dòng)手優(yōu)化之前,先profile看看,程序時(shí)間都花在哪些地方了:

python -m cProfile -o output.prof your_program

跑完之后,會(huì)生成一個(gè)output.profile文件。接下來需要對(duì)這個(gè)文件進(jìn)行分析,這方面的工具我推薦SnakeViz,神器。安裝非常簡(jiǎn)單,pip install snakeviz 即可。

snakeviz output.prof

運(yùn)行之后,會(huì)打開一個(gè)瀏覽器窗口,好好看看,哪些函數(shù)耗時(shí)最多,耗時(shí)是因?yàn)檎{(diào)用次數(shù)太多呢,還是因?yàn)閱未握{(diào)用耗時(shí)長(zhǎng),明確優(yōu)化重點(diǎn);

2. 減少重復(fù)計(jì)算,緩存計(jì)算結(jié)果??纯?functools.lru_cache。

3. 能用list comprehension的地方,不要用for;能用numpy的地方,不要手寫循環(huán),不要用pandas;

4. 看你的回測(cè),40w個(gè)tick的話,數(shù)據(jù)量不算大,應(yīng)該是直接load到內(nèi)存里的吧?

5. 還是慢的話,上Numba — Numba,就是安裝麻煩一些,使用起來非常方便,速度提高一兩個(gè)數(shù)量級(jí)沒問題;

6. 如果你用的包PyPy都支持的話,試試pypy;

7. Cython、c module,上面的都沒效果的話,這個(gè)是最后的候選方案了。

本文名稱:python函數(shù)提速 python函數(shù)提高代碼執(zhí)行速度
網(wǎng)頁(yè)鏈接:http://www.muchs.cn/article20/doocijo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、微信小程序、云服務(wù)器、移動(dòng)網(wǎng)站建設(shè)、全網(wǎng)營(yíng)銷推廣、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)