最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中的lambda和apply用法及說明

 更新時間:2022年12月21日 16:08:26   作者:anshuai_aw1  
這篇文章主要介紹了Python中的lambda和apply用法及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

1 lambda

lambda原型為:lambda 參數(shù):操作(參數(shù))

lambda函數(shù)也叫匿名函數(shù),即沒有具體名稱的函數(shù),它允許快速定義單行函數(shù),可以用在任何需要函數(shù)的地方。這區(qū)別于def定義的函數(shù)。

lambda與def的區(qū)別:

1)def創(chuàng)建的方法是有名稱的,而lambda沒有。

2)lambda會返回一個函數(shù)對象,但這個對象不會賦給一個標(biāo)識符,而def則會把函數(shù)對象賦值給一個變量(函數(shù)名)。

3)lambda只是一個表達(dá)式,而def則是一個語句。

4)lambda表達(dá)式” : “后面,只能有一個表達(dá)式,def則可以有多個。

5)像if或for或print等語句不能用于lambda中,def可以。

6)lambda一般用來定義簡單的函數(shù),而def可以定義復(fù)雜的函數(shù)。

1.1 舉最簡單的例子

#單個參數(shù)的:
g = lambda x : x ** 2
print g(3)
"""
9
"""
#多個參數(shù)的:
g = lambda x, y, z : (x + y) ** z
print g(1,2,2)
"""
9
"""

1.2 再舉一個普通的例子

將一個 list 里的每個元素都平方:

map( lambda x: x*x, [y for y in range(10)] )

這個寫法要好過

def sq(x):
? ? return x * x
?
map(sq, [y for y in range(10)])

因為后者多定義了一個(污染環(huán)境的)函數(shù),尤其如果這個函數(shù)只會使用一次的話。

進一步講,匿名函數(shù)本質(zhì)上就是一個函數(shù),它所抽象出來的東西是一組運算。這是什么意思呢?類比

a = [1, 2, 3]

f = lambda x : x + 1

我們會發(fā)現(xiàn),等號右邊的東西完全可以脫離等號左邊的東西而存在,等號左邊的名字只是右邊之實體的標(biāo)識符。如果能習(xí)慣 [1, 2, 3] 單獨存在,那么 lambda x : x + 1 也能單獨存在其實也就不難理解了,它的意義就是給「某個數(shù)加一」這一運算本身。

現(xiàn)在回頭來看 map() 函數(shù),它可以將一個函數(shù)映射到一個可枚舉類型上面。沿用上面給出的 a 和 f,可以寫

map(f, a)

也就是將函數(shù) f 依次套用在 a 的每一個元素上面,獲得結(jié)果 [2, 3, 4]?,F(xiàn)在用 lambda 表達(dá)式來替換 f,就變成:

map( lambda x : x + 1, [1, 2, 3] )

會不會覺得現(xiàn)在很一目了然了?尤其是類比

a = [1, 2, 3]
r = []
for each in a:
? ? r.append(each+1)

2 Apply

Python中apply函數(shù)的格式為:apply(func,*args,**kwargs)

當(dāng)然,func可以是匿名函數(shù)。

用途:當(dāng)一個函數(shù)的參數(shù)存在于一個元組或者一個字典中時,用來間接的調(diào)用這個函數(shù),并將元組或者字典中的參數(shù)按照順序傳遞給參數(shù)

解析:args是一個包含按照函數(shù)所需參數(shù)傳遞的位置參數(shù)的一個元組,簡單來說,假如A函數(shù)的函數(shù)位置為 A(a=1,b=2),那么這個元組中就必須嚴(yán)格按照這個參數(shù)的位置順序進行傳遞(a=3,b=4),而不能是(b=4,a=3)這樣的順序。kwargs是一個包含關(guān)鍵字參數(shù)的字典,而其中args如果不傳遞,kwargs需要傳遞,則必須在args的位置留空。

apply的返回值就是函數(shù)func函數(shù)的返回值。

2.1 舉例

? ?def function(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'}) ?

輸出結(jié)果:

('good', 'better')
(2, 9)
('cai', 'quan')
('cai', 'caiquan')
('caiquan', 'Tom')

有時候,函數(shù)的參數(shù)可能是DataFrame中的行或者列。

2.2 下面的例子是DataFrame中apply的用法

#函數(shù)應(yīng)用和映射
import numpy as np
import pandas as pd
df=pd.DataFrame(np.random.randn(4,3),columns=list('bde'),index=['utah','ohio','texas','oregon'])
print(df)
"""
? ? ? ? ? ? ? ?b ? ? ? ? d ? ? ? ? e
utah ? -0.667969 ?1.974801 ?0.738890
ohio ? -0.896774 -0.790914 ?0.474183
texas ? 0.043476 ?0.890176 -0.662676
oregon ?0.701109 -2.238288 -0.154442
"""
?
#將函數(shù)應(yīng)用到由各列或行形成的一維數(shù)組上。DataFrame的apply方法可以實現(xiàn)此功能
f=lambda x:x.max()-x.min()
#默認(rèn)情況下會以列為單位,分別對列應(yīng)用函數(shù)
t1=df.apply(f)
print(t1)
t2=df.apply(f,axis=1)
print(t2)
?
"""
b ? ?1.597883
d ? ?4.213089
e ? ?1.401566
dtype: float64
utah ? ? ?2.642770
ohio ? ? ?1.370957
texas ? ? 1.552852
oregon ? ?2.939397
dtype: float64
"""
?
#除標(biāo)量外,傳遞給apply的函數(shù)還可以返回由多個值組成的Series
def f(x):
? ? return pd.Series([x.min(),x.max()],index=['min','max'])
t3=df.apply(f)
#從運行的結(jié)果可以看出,按列調(diào)用的順序,調(diào)用函數(shù)運行的結(jié)果在右邊依次追加
print(t3)
?
"""
? ? ? ? ? ? b ? ? ? ? d ? ? ? ? e
min -0.896774 -2.238288 -0.662676
max ?0.701109 ?1.974801 ?0.738890
"""
?
#元素級的python函數(shù),將函數(shù)應(yīng)用到每一個元素
#將DataFrame中的各個浮點值保留兩位小數(shù)
f=lambda x: '%.2f'%x
t3=df.applymap(f)
print(t3)
"""
? ? ? ? ? ? b ? ? ?d ? ? ?e
utah ? ?-0.67 ? 1.97 ? 0.74
ohio ? ?-0.90 ?-0.79 ? 0.47
texas ? ?0.04 ? 0.89 ?-0.66
oregon ? 0.70 ?-2.24 ?-0.15
"""
?
#注意,之所以這里用map,是因為Series有一個元素級函數(shù)的map方法。而dataframe只有applymap。
t4=df['e'].map(f)
print(t4)
?
"""
utah ? ? 0.74
ohio ? ? 0.47
texas ? -0.66
oregon ?-0.15
"""

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python tkinter之 復(fù)選、文本、下拉的實現(xiàn)

    python tkinter之 復(fù)選、文本、下拉的實現(xiàn)

    這篇文章主要介紹了python tkinter之 復(fù)選、文本、下拉的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python 、Pycharm、Anaconda三者的區(qū)別與聯(lián)系、安裝過程及注意事項

    Python 、Pycharm、Anaconda三者的區(qū)別與聯(lián)系、安裝過程及注意事項

    這篇文章主要介紹了Python,Pycharm,Anaconda三者的區(qū)別與聯(lián)系、安裝過程及其注意事項,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • Django中l(wèi)ogin_required裝飾器的深入介紹

    Django中l(wèi)ogin_required裝飾器的深入介紹

    這篇文章主要給大家介紹了關(guān)于Django中l(wèi)ogin_required裝飾器的使用方法,并給大家進行了實例借鑒,利用@login_required實現(xiàn)Django用戶登陸訪問限制,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-11-11
  • Python實現(xiàn)合并與拆分多個PDF文檔中的指定頁

    Python實現(xiàn)合并與拆分多個PDF文檔中的指定頁

    這篇文章主要為大家詳細(xì)介紹了如何使用Python實現(xiàn)將多個PDF文檔中的指定頁合并生成新的PDF以及拆分PDF,感興趣的小伙伴可以參考一下
    2025-03-03
  • 使用Python實現(xiàn)在Windows下安裝Django

    使用Python實現(xiàn)在Windows下安裝Django

    今天小編就為大家分享一篇關(guān)于使用Python實現(xiàn)在Windows下安裝Django,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • python3 requests中使用ip代理池隨機生成ip的實例

    python3 requests中使用ip代理池隨機生成ip的實例

    今天小編就為大家分享一篇python3 requests中使用ip代理池隨機生成ip的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • PyCM多類別混淆矩陣分析python庫功能使用探究

    PyCM多類別混淆矩陣分析python庫功能使用探究

    這篇文章主要為大家介紹了python編寫的PyCM多類混淆矩陣庫,用于多類別混淆矩陣分析,幫助用戶從不同角度評價分類模型的表現(xiàn),這些指標(biāo)包括但不限于準(zhǔn)確率、召回率、F1分?jǐn)?shù)、Kappa?統(tǒng)計量等,支持二分類、多分類及多標(biāo)簽分類問題
    2024-01-01
  • 對python讀取CT醫(yī)學(xué)圖像的實例詳解

    對python讀取CT醫(yī)學(xué)圖像的實例詳解

    今天小編就為大家分享一篇對python讀取CT醫(yī)學(xué)圖像的實例詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 使用python自動追蹤你的快遞(物流推送郵箱)

    使用python自動追蹤你的快遞(物流推送郵箱)

    本文講解如何讓 python自動為你查詢快遞信息 ,并在物流發(fā)生更新或者到達(dá)指定地點時第一時間將 物流推送至你的郵箱,本文通過實例代碼截圖的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-03-03
  • Python爬蟲之爬取嗶哩嗶哩熱門視頻排行榜

    Python爬蟲之爬取嗶哩嗶哩熱門視頻排行榜

    這篇文章主要介紹了Python爬蟲之爬取嗶哩嗶哩熱門視頻排行榜,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04

最新評論

葫芦岛市| 遂宁市| 温州市| 馆陶县| 柳江县| 诏安县| 建昌县| 沈丘县| 云林县| 舟山市| 孟州市| 佳木斯市| 湄潭县| 财经| 辽阳县| 巨野县| 湘乡市| 阳山县| 阳江市| 克山县| 明光市| 洛宁县| 封丘县| 昌吉市| 盈江县| 思南县| 抚宁县| 上蔡县| 临泽县| 确山县| 青铜峡市| 江永县| 城市| 玛沁县| 璧山县| 临颍县| 吉林市| 霞浦县| 碌曲县| 响水县| 福州市|