真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

有哪些Python高效代碼小技巧

本篇內(nèi)容主要講解“有哪些Python高效代碼小技巧”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“有哪些Python高效代碼小技巧”吧!

目前創(chuàng)新互聯(lián)已為超過千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、山陽網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

把不常用的類別整合成一個(gè)

有時(shí)你會得到元素分布不均的欄,少有的類別也是僅僅存在而已。通常會希望能將這些類別合并為一個(gè)。

df.artists.value_counts()

有哪些Python高效代碼小技巧

要將Coldplay和Weekend合并到一個(gè)類別中,因?yàn)樗鼈儗?shù)據(jù)集的影響微乎其微。該怎么做?

首先,找到不想改變的元素,比如Eminem,TaylorSwift和BrunoMars:

myList =df.artists.value_counts().nlargest(3).index

使用where()函數(shù)替換其他元素

dfdf_new = df.where(df.artists.isin(myList),other='otherartists') df_new.artists.value_counts()

有哪些Python高效代碼小技巧

這便是按要求修改后的更新列。

查找列表的新元素

給定兩個(gè)不同的列表,要求找到一個(gè)列表中有但另一個(gè)列表中沒有的元素時(shí),參照這兩個(gè)列表:

A = [ 1, 3, 5, 7, 9 ] B = [ 4, 5, 6, 7, 8 ]

為了找到列表A中的新元素,我們?nèi)×斜鞟與列表B的集合差:

set(A) - set(B)

有哪些Python高效代碼小技巧

值1、3和9只出現(xiàn)在列表A而不出現(xiàn)在列表B中。

擺脫警告

運(yùn)行代碼時(shí),經(jīng)常會收到很多警告。沒過多久它就開始使人惱火。例如每當(dāng)導(dǎo)入朝代時(shí),可能會收到警告(FutureWarning)消息

有哪些Python高效代碼小技巧

可以用下述代碼隱藏所有警告。請確保其寫在代碼頂部。

import warnings warnings.filterwarnings(action='ignore') import keras

這將有助于在整個(gè)代碼中隱藏所有警告。

Map() 函數(shù)

map()函數(shù)接受函數(shù)(function)和序列(iterable)兩個(gè)參數(shù),返回包含結(jié)果的映射:

map(func,itr)

func 是指接收來自映射傳遞的給定序列元素的函數(shù)。

itr是指可以被映射的序列。

def product(n1,n2):     return n1 *n2 list1 = (1, 2, 3, 4) list2 = (10,20,30,40)result = map(product, list1,list2) list(result)

有哪些Python高效代碼小技巧

開始解碼。

Product函數(shù)接受兩個(gè)列表,并反饋兩個(gè)列表的乘積。列表1和列表2是充當(dāng)map函數(shù)序列的兩個(gè)列表。map()集product函數(shù)和序列于一身→列表1和列表2,以及反饋兩個(gè)列表的乘積作為結(jié)果。

Map + Lambda組合

可以使用lambda表達(dá)式修改上述代碼,以替換product函數(shù):

list1 = (1, 2, 3, 4) list2 = (10,20,30,40) result = map(lambda x,y: x * y, list1,list2) print(list(result))

Lambda表達(dá)式有助于降低單獨(dú)編寫函數(shù)的成本。

啟動(dòng)、停止和設(shè)置

Slice(start:stop[:step])是通常包含部分序列的對象。

  • 如果只提供停止,則從索引0開始生成部分序列直到停止。

  • 如果只提供開始,則在索引開始之后生成部分序列直到最后一個(gè)元素。

  • 如果同時(shí)提供開始和停止,則在索引開始之后生成部分序列直到停止。

  • 如果起始、停止和步驟三者同時(shí)提供,則在索引開始之后生成部分序列直到停止,并增加索引步驟。

x = [ 1, 2, 3, 4, 5, 6, 7, 8 ] x[ 1: 6: 2]

有哪些Python高效代碼小技巧

上面的代碼中,1是開始索引,6是停止索引,2是步驟索引。這意味著從指數(shù)1開始到指數(shù)6停止,步長為2。

還可以使用[::-1]操作翻轉(zhuǎn)列表:

x[::-1]

有哪些Python高效代碼小技巧

沒錯(cuò),通過開始、停止和步驟操作,很容易就可以將整個(gè)列表進(jìn)行逆轉(zhuǎn)。

組合Zip和Enumerate

zip和enumerate函數(shù)常用于for循環(huán),兩個(gè)一起用就更精彩了。它不僅可以在單個(gè)循環(huán)中迭代多個(gè)值,而且可以同時(shí)獲得索引。

NAME = ['Sid','John','David'] BIRD = ['Eagle','Sparrow','Vulture'] CITY =['Mumbai','US','London']for i,(name,bird,city) inenumerate(zip(NAME,BIRD,CITY)):     print(i,' represents ',name,' ,',bird,' and ',city)

有哪些Python高效代碼小技巧

Zip函數(shù)可以將所有列表合并為一個(gè),以便同時(shí)訪問每個(gè)列表,而Enumerate函數(shù)協(xié)助獲得索引以及附加到該索引的元素。

隨機(jī)抽樣

有時(shí)會遇到非常大的數(shù)據(jù)集,因而決定處理數(shù)據(jù)的隨機(jī)子集。pandas數(shù)據(jù)框的sample函數(shù)可以實(shí)現(xiàn)更多的功能。不妨看看在上面已經(jīng)創(chuàng)建過的歌星數(shù)據(jù)模型。

df.sample(n=10)

這有助于獲取數(shù)據(jù)集里隨機(jī)的10行。

df.sample(frac=0.5).reset_index(drop=True)

分解上面的代碼,frac參數(shù)取值在0到1之間,包括1。它占用分配給它的數(shù)據(jù)流的一部分。在上面的代碼片段中指定了0.5,因此它將返回size→0.5*的隨機(jī)子集

你能看到前面的reset_index函數(shù)。它有助于適當(dāng)?shù)刂嘏潘饕?,因?yàn)楂@取隨機(jī)子集時(shí),索引也會被重新排列。

保留內(nèi)存

隨著編程的深入,你將意識到記住內(nèi)存高效代碼的重要性。生成器是返回我們可以遍歷的對象的函數(shù)。這有助于有效利用內(nèi)存,因此它主要用于當(dāng)在無限長的序列上迭代。

def SampleGenerator(n):     yield n     nn = n+1     yield n     nn = n+1     yield ngen = SampleGenerator(1)

Yield 語句暫停函數(shù),保存其所有狀態(tài),并在以后的連續(xù)調(diào)用中繼續(xù)執(zhí)行。

print(next(gen)) print(next(gen)) print(next(gen))

有哪些Python高效代碼小技巧

如你所見,yield保存了前一個(gè)狀態(tài),而每當(dāng)我們調(diào)用下一個(gè)函數(shù)時(shí),它都會繼續(xù)到下一個(gè)返回其新輸出的yield。

通過添加在generator函數(shù)內(nèi)無限運(yùn)行的while循環(huán),可以迭代單個(gè)yield。

def updatedGenerator(n):     while(1):         yield n         nn = n + 1 a = updatedGenerator(1)for i in range(5):     print(next(a))

有哪些Python高效代碼小技巧

While語句可以反復(fù)迭代相同的yield語句。

救世主Skiprows

重頭戲壓軸出場!要讀取的csv文件過大,以至于內(nèi)存不夠用?Skiprows可以輕松解決。

它可以指定需要在數(shù)據(jù)框中跳過的行數(shù)。

假設(shè)有個(gè)100萬行的數(shù)據(jù)集,不適合你的內(nèi)存。如果分配skiprows=0.5  million(跳讀50萬行),在讀取數(shù)據(jù)集的時(shí)候就會跳過50萬行,這樣就可以輕松地讀取數(shù)據(jù)集的子集。

df = pd.read_csv('artist.csv') df_new = pd.read_csv('artist.csv',skiprows=50)df.shape, df_new.shape

有哪些Python高效代碼小技巧

在上面的代碼片段中,df表示包含112行的數(shù)據(jù)集。在添加了skiprows=50(跳讀50行)之后,它跳過了數(shù)據(jù)集中的50行,從而讀取了62行作為新數(shù)據(jù)集。

到此,相信大家對“有哪些Python高效代碼小技巧”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!


新聞標(biāo)題:有哪些Python高效代碼小技巧
URL鏈接:http://weahome.cn/article/jsgdss.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部