日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

提高Python运行效率的6大技巧!

發(fā)布時間:2025/5/22 67 豆豆
生活随笔 收集整理的這篇文章主要介紹了 提高Python运行效率的6大技巧! 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Python是一門優(yōu)秀的語言,它能讓你在短時間內(nèi)通過極少量代碼就能完成許多操作。不僅如此,它還輕松支持多任務(wù)處理,比如多進(jìn)程。

不喜歡Python的人經(jīng)常會吐嘈Python運行太慢。但是,事實并非如此。作為程序猿就是希望如何優(yōu)化代碼,精簡代碼。今天黑馬程序員Python學(xué)科就為大家精選6條python代碼優(yōu)化建議。

因為GIL的存在,Python很難充分利用多核CPU的優(yōu)勢。但是,可以通過內(nèi)置的模塊multiprocessing實現(xiàn)下面幾種并行模式:


1、 多進(jìn)程并行編程


對于CPU密集型的程序,可以使用multiprocessing的Process,Pool等封裝好的類,通過多進(jìn)程的方式實現(xiàn)并行計算。但是因為進(jìn)程中的通信成本比較大,對于進(jìn)程之間需要大量數(shù)據(jù)交互的程序效率未必有大的提高。


2、 多線程并行編程


對于IO密集型的程序,multiprocessing.dummy模塊使用multiprocessing的接口封裝threading,使得多線程編程也變得非常輕松(比如可以使用Pool的map接口,簡潔高效)。分布式:multiprocessing中的Managers類提供了可以在不同進(jìn)程之共享數(shù)據(jù)的方式,可以在此基礎(chǔ)上開發(fā)出分布式的程序。 不同的業(yè)務(wù)場景可以選擇其中的一種或幾種的組合實現(xiàn)程序性能的優(yōu)化。


3、 優(yōu)化算法時間


算法的時間復(fù)雜度對程序的執(zhí)行效率影響最大,在Python中可以通過選擇合適的數(shù)據(jù)結(jié)構(gòu)來優(yōu)化時間復(fù)雜度,如list和set查找某一個元素的時間復(fù)雜度分別是O(n)和O(1)。不同的場景有不同的優(yōu)化方式,總得來說,一般有分治,分支界限,貪心,動態(tài)規(guī)劃等思想。
例如:set的用法
set的union,intersection,difference操作要比list的迭代要快。因此如果涉及到求list交集,并集或者差的問題可以轉(zhuǎn)換為set來操作。

4、 針對循環(huán)的優(yōu)化


每種編程語言都會強(qiáng)調(diào)需要優(yōu)化循環(huán)。當(dāng)使用Python的時候,你可以依靠大量的技巧使得循環(huán)運行得更快。然而,開發(fā)者經(jīng)常漏掉的一個方法是:避免在一個循環(huán)中使用點操作。例如,考慮下面的代碼:
每一次你調(diào)用方法str.upper,Python都會求該方法的值。然而,如果你用一個變量代替求得的值,值就變成了已知的,Python就可以更快地執(zhí)行任務(wù)。優(yōu)化循環(huán)的關(guān)鍵,是要減少Python在循環(huán)內(nèi)部執(zhí)行的工作量,因為Python原生的解釋器在那種情況下,真的會減緩執(zhí)行的速度。
lowerlist = ['this', 'is', 'lowercase']
upper = str.upper
upperlist = []
append = upperlist.append
for word in lowerlist:
append(upper(word))
print(upperlist)
#Output = ['THIS', 'IS', 'LOWERCASE']


5、 函數(shù)選擇


在循環(huán)的時候使用xrange而不是range;使用xrange可以節(jié)省大量的系統(tǒng)內(nèi)存,因為xrange()在序列中每次調(diào)用只產(chǎn)生一個整數(shù)元素。而range()將直接返回完整的元素列表,用于循環(huán)時會有不必要的開銷。在python3中xrange不再存在,里面range提供一個可以遍歷任意長度的范圍的iterator。


6、 使用性能分析工具


除了上面在ipython使用到的timeit模塊,還有cProfile。cProfile的使用方式也非常簡單:python–m cProfile filename.py,filename.py是要運行程序的文件名,可以在標(biāo)準(zhǔn)輸出中看到每一個函數(shù)被調(diào)用的次數(shù)和運行的時間,從而找到程序的性能瓶頸,然后可以有針對性地優(yōu)化。


關(guān)注公眾賬號

【飛馬會】


往期福利關(guān)注飛馬會公眾號,回復(fù)對應(yīng)關(guān)鍵詞打包下載學(xué)習(xí)資料;回復(fù)“入群”,加入飛馬網(wǎng)AI、大數(shù)據(jù)、項目經(jīng)理學(xué)習(xí)群,和優(yōu)秀的人一起成長!

微軟大牛人工智能系列課

(掃碼試聽或訂閱)



m.qlchat.com/live/channe… (二維碼自動識別)



回復(fù) 數(shù)字“1”下載從入門到研究,人工智能領(lǐng)域最值得一讀的10本資料(附下載)

回復(fù) 數(shù)字“2”機(jī)器學(xué)習(xí) & 數(shù)據(jù)科學(xué)必讀的經(jīng)典書籍,內(nèi)附資料包!

回復(fù) 數(shù)字“3”走進(jìn)AI & ML:從基本的統(tǒng)計學(xué)到機(jī)器學(xué)習(xí)書單(附PDF下載)

回復(fù) 數(shù)字“4”了解人工智能,30份書單不容錯過(附電子版PDF下載)

回復(fù) 數(shù)字“6”AI人工智能:54份行業(yè)重磅報告匯總(附下載)

回復(fù) 數(shù)字“7”TensorFlow介紹、安裝教程、圖像識別應(yīng)用(附安裝包/指南)

回復(fù) 數(shù)字“10”麥肯錫160頁報告:2030年全球?qū)⒖赡?億人要被機(jī)器搶飯碗

回復(fù) 數(shù)字“12”小白| Python+Matlab+機(jī)器學(xué)習(xí)+深度神經(jīng)網(wǎng)絡(luò)+理論+實踐+視頻+課件+源碼,附下載!

回復(fù) 數(shù)字“14”小白| 機(jī)器學(xué)習(xí)和深度學(xué)習(xí)必讀書籍+機(jī)器學(xué)習(xí)實戰(zhàn)視頻/PPT+大數(shù)據(jù)分析書籍推薦!

回復(fù) 數(shù)字“16”100G Python從入門到精通!自學(xué)必備全套視頻教程+python經(jīng)典書籍!

回復(fù) 數(shù)字“17”【干貨】31篇關(guān)于深度學(xué)習(xí)必讀論文匯總(附論文下載地址)

回復(fù) 數(shù)字“18”526份行業(yè)報告+白皮書:AI人工智能、機(jī)器人、智能出行、智能家居、物聯(lián)網(wǎng)、VR/AR、 區(qū)塊鏈等(附下載)

回復(fù) 數(shù)字“19”800G人工智能學(xué)習(xí)資料:AI電子書+Python語言入門+教程+機(jī)器學(xué)習(xí)等限時免費領(lǐng)取!

回復(fù) 數(shù)字“20”17張思維導(dǎo)圖,一網(wǎng)打盡機(jī)器學(xué)習(xí)統(tǒng)計基礎(chǔ)(附下載)

回復(fù) 數(shù)字“22”吳恩達(dá)新書,教你構(gòu)建機(jī)器學(xué)習(xí)項目:《Machine Learning Yearning》

回復(fù) 數(shù)字“23”機(jī)器學(xué)習(xí):怎樣才能做到從入門到不放棄?(內(nèi)含福利)

回復(fù) 數(shù)字“24”限時下載 | 132G編程資料:Python、JAVA、C,C++、機(jī)器人編程、PLC,入門到精通~

回復(fù) 數(shù)字“25”限資源 | 177G Python/機(jī)器學(xué)習(xí)/深度學(xué)習(xí)/算法/TensorFlow等視頻,涵蓋入門/中級/項目各階段!

回復(fù) 數(shù)字“26”人工智能入門書單推薦,學(xué)習(xí)AI的請收藏好(附PDF下載)

回復(fù) 數(shù)字“27”資源 | 吳恩達(dá)斯坦福CS230深度學(xué)習(xí)課程全套資料放出(附下載)

回復(fù) 人工智能下載《FMI人工智能與大數(shù)據(jù)峰會嘉賓演講PPT》

回復(fù) AI 江湖下載《十大AI江湖領(lǐng)域》

回復(fù) ML實踐下載《機(jī)器學(xué)習(xí)實踐經(jīng)驗指導(dǎo)(英文版)》

回復(fù) DL論文下載《深度學(xué)習(xí)100篇以上論文資料》

回復(fù) 算法 下載《數(shù)據(jù)挖掘十大經(jīng)典算法》

回復(fù) 6.10 下載《6.10餓了么&飛馬網(wǎng)項目管理實踐PPT》


總結(jié)

以上是生活随笔為你收集整理的提高Python运行效率的6大技巧!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。