版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第python3中apply函數(shù)和lambda函數(shù)的使用詳解Out:['Red','Purple','Green','Blue']
用sorted還能處理首字母不規(guī)范的情況,連排序都省了:
colors=['Red','purple','Green','blue']
print(sorted(colors,key=str.capitalize))
Out:['blue','Green','purple','Red']
還有一個主要原因就是:lambda函數(shù)沒有函數(shù)名稱。所以在代碼交接,項目移植的場景中會給團隊帶來很多困難,多寫個函數(shù)add_one()沒什么壞處,因為大家都很容易理解,知道它是執(zhí)行+1的功能,但是如果團隊里你在自己負責的模塊使用了很多l(xiāng)ambda,會給其他人理解帶來很多麻煩
適合lambda的場景
話又說回來,存在即合理,那么真正需要我們使用lambda的是哪些場景呢:
你需要的方法是很簡單的(+1,字符串拼接等),該函數(shù)不值得擁有一個名字使用lambda表達式,會比我們能想到的函數(shù)名稱更容易理解除了lambda,沒有任何python提供的函數(shù)可以實現(xiàn)目的團隊中所有成員都掌握lambda,大家同意你用
還有一種場景非常適用,就是在給其他人制造自己很專業(yè)的錯覺時,比如:
哎呀,小老弟,聽說你學了Python,知道lambda不?沒聽過?不行啊,白學了!
來來來,讓我給你講講。。。此處省略1萬字
總結
今天為大家九淺一深地講解了lambda的用法和使用場景,所謂九淺一深,就是90%情況下用于創(chuàng)建簡單的匿名函數(shù),10%的情況稍微復雜(我這個借口找的太好了)
總而言之就是,任何事情都具有兩面性,我們在使用lambda之前應該先停下來,問問自己是不是真的需要它。
當然,如果需要和別人忽悠的時候都是正反一張嘴,lambda是好是壞全看我們自己怎么說,吹牛時請遵守如下原則,屢試不爽:
如果你說一個女大學生晚上賣淫就是可恥,但如果改成一個妓女利用業(yè)余時間努力學習就勵志多了!
lambda也是如此
apply函數(shù)
Python中apply函數(shù)的格式為:apply(func,*args,**kwargs)
當然,func可以是匿名函數(shù)。
用途:當一個函數(shù)的參數(shù)存在于一個元組或者一個字典中時,用來間接的調(diào)用這個函數(shù),并將元組或者字典中的參數(shù)按照順序傳遞給參數(shù)
解析:args是一個包含按照函數(shù)所需參數(shù)傳遞的位置參數(shù)的一個元組,簡單來說,假如A函數(shù)的函數(shù)位置為A(a=1,b=2),那么這個元組中就必須嚴格按照這個參數(shù)的位置順序進行傳遞(a=3,b=4),而不能是(b=4,a=3)這樣的順序。kwargs是一個包含關鍵字參數(shù)的字典,而其中args如果不傳遞,kwargs需要傳遞,則必須在args的位置留空。
apply的返回值就是函數(shù)func函數(shù)的返回值。
?舉例
deffunction(a,b):
print(a,b)
apply(function,('good','better'))
apply(function,(2,3+6))
apply(function,('cai','quan'))
apply(function,('cai',),{'b':'caiquan'})
apply(function,(),{'a':'caiquan','b':'Tom'})
輸出結果:
(good,better)
(2,9)
(cai,quan)
(cai,caiquan)
(caiquan,Tom)
對數(shù)據(jù)進行預處理時,大家使用比較多的是apply函數(shù),apply函數(shù)是pandas庫中的函數(shù),非常好用的一個函數(shù)相當于循環(huán)遍歷,起到對每一條數(shù)據(jù)進行處理的效果,函數(shù)的參數(shù)可能是DataFrame中的行或者列。
說到apply又不得不說lambda函數(shù)了,這兩個結合來用簡直爽的不行。
lambda關鍵字可以用來創(chuàng)建一個小的匿名函數(shù)
示例:
DataFrame.apply(func,axis=0,broadcast=False,raw=False,
reduce=None,args=(),*kwds)
第一個參數(shù)func是一個函數(shù),需要自己實現(xiàn),可以使用lambda匿名函數(shù),axis默認值為0,axis為0時,會把一列的數(shù)據(jù)進行遍歷。
data[‘cut_review'].apply(lambdax:[iforiinxsifinotinstopwords])
?下面的例子是DataFrame中apply的用法
#函數(shù)應用和映射
importnumpyasnp
importpandasaspd
df=pd.DataFrame(np.random.randn(4,3),columns=list('bde'),index=['utah','ohio','texas','oregon'])
print(df)
bde
utah-0.6679691.9748010.738890
ohio-0.896774-0.7909140.474183
texas0.0434760.890176-0.662676
oregon0.701109-2.238288-0.154442
#將函數(shù)應用到由各列或行形成的一維數(shù)組上。DataFrame的apply方法可以實現(xiàn)此功能
f=lambdax:x.max()-x.min()
#默認情況下會以列為單位,分別對列應用函數(shù)
t1=df.apply(f)
print(t1)
t2=df.apply(f,axis=1)
print(t2)
b1.597883
d4.213089
e1.401566
dtype:float64
utah2.642770
ohio1.370957
texas1.552852
oregon2.939397
dtype:float64
#除標量外,傳遞給apply的函數(shù)還可以返回由多個值組成的Series
deff(x):
returnpd.Series([x.min(),x.max()],index=['min','max'])
t3=df.apply(f)
#從運行的結果可以看出,按列調(diào)用的順序,調(diào)用函數(shù)運行的結果在右邊依次追加
print(t3)
bde
min-0.896774-2.238288-0.662676
max0.7011091.9748010.738890
#元素級的python函數(shù),將函數(shù)應用到每一個元素
#將DataFrame中的各個浮點值保留兩位小數(shù)
f=lambdax:'%.2f'%x
t3=df.applymap(f)
print(t3)
bde
utah-0.671.970.74
ohio-0.90-0.790.47
texas0.040.89-0.66
oregon0.70-2.24-0.15
#注意,之所以這里用map,是因為Series有一個元素級函數(shù)的map方法。而dataframe只有applymap。
t4=df['e'].map(f)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030葡萄酒釀造行業(yè)市場現(xiàn)狀分析投資評估產(chǎn)業(yè)發(fā)展政策規(guī)劃分析研究報告
- 2025-2030葡萄牙銀行業(yè)市場供需分析投資評估現(xiàn)狀規(guī)劃分析研究報告
- 2025-2030葡萄牙葡萄酒產(chǎn)業(yè)發(fā)展現(xiàn)狀及其對歐洲市場的品牌營銷策略研究報告
- 宜賓2025下半年四川宜賓興文縣事業(yè)單位招聘52人筆試歷年參考題庫附帶答案詳解
- 安徽2025年安徽農(nóng)業(yè)大學科研助理招聘123人(第一批)筆試歷年參考題庫附帶答案詳解
- 寧波浙江寧波余姚市工人文化宮招聘編外工作人員筆試歷年參考題庫附帶答案詳解
- 四川四川省婦幼保健院宣傳統(tǒng)戰(zhàn)部干事招聘筆試歷年參考題庫附帶答案詳解
- 四川2025下半年四川省市場監(jiān)督管理局下屬事業(yè)單位招聘4人筆試歷年參考題庫附帶答案詳解
- 嘉興浙江嘉興大學附屬醫(yī)院(嘉興市第一醫(yī)院)招聘高層次人才(博士研究生)30人筆試歷年參考題庫附帶答案詳解
- 臺州浙江臺州玉環(huán)市慈善事業(yè)促進服務中心招聘編外工作人員筆試歷年參考題庫附帶答案詳解
- 2025-2026年蘇教版初一歷史上冊期末熱點題庫及完整答案
- 規(guī)范園區(qū)環(huán)保工作制度
- 2026年上半年眉山天府新區(qū)公開選調(diào)事業(yè)單位工作人員的參考題庫附答案
- 藥理學試題中國藥科大學
- 卓越項目交付之道
- (人教版)八年級物理下冊第八章《運動和力》單元測試卷(原卷版)
- 2026屆新高考語文熱點沖刺復習 賞析小說語言-理解重要語句含意
- 2026屆杭州學軍中學數(shù)學高三上期末綜合測試模擬試題含解析
- 創(chuàng)世紀3C數(shù)控機床龍頭、高端智能裝備與產(chǎn)業(yè)復蘇雙輪驅(qū)動
- 辦理退休委托書
- (詳盡多場合)中標方支付招標代理費合同范本
評論
0/150
提交評論