今日は、Python の非常に使いやすい組み込み関数である lambda メソッドをお勧めしたいと思います。このチュートリアルでは、大まかに説明します。
## lambda 関数とはlambda arguments : expression
任意の数のパラメータを受け入れることができますが、許可されるのは次のとおりです。式が 1 つ含まれており、式の結果は次のようになります。 関数の戻り値については、単純に例を書くことができます:
(lambda x:x**2)(5)
output:
25
リスト内の要素をフィルタリング
filter(function, iterable)
import numpy as np yourlist = list(np.arange(2,50,3))
2 乗後の 100 未満の要素をフィルターで除外したいので、匿名を定義しましょう関数は次のようになります:
lambda x:x**2<100
最終結果は次のとおりです:
list(filter(lambda x:x**2<100, yourlist))
出力:
[2, 5, 8]
複雑な計算プロセスが発生した場合でも、エディターはそうすることを推奨します。自分で関数をカスタマイズしますが、単純な計算処理であれば、ラムダ匿名関数が間違いなく最良の選択です。
map() 関数との併用
lambda x: x**2+x**3
出力:
list(map(lambda x: x**2+x**3, yourlist))
もちろん、前に述べたように、ラムダ匿名関数は複数のパラメータを受け入れることができますここで試すことができます。たとえば、リストのセットが 2 つあります。
[12, 150, 576, 1452, 2940, 5202, ......]
また、map() メソッドを使用して操作します。コードは次のとおりです。
mylist = list(np.arange(4,52,3)) yourlist = list(np.arange(2,50,3))
output:
list(map(lambda x,y: x**2+y**2, yourlist,mylist))
と apply() メソッド 共同の use
apply() メソッドは Pandas データ テーブルでよく使用され、ラムダ匿名関数が apply() メソッドに組み込まれます。データ テーブルは次のとおりです:
[20, 74, 164, 290, 452, 650, 884, 1154, ......]
myseries = pd.Series(mylist) myseries
apply() メソッドの使用方法は、map() メソッドと filter() メソッドの両方で、前の 2 つとは少し異なります。 、反復可能なオブジェクトをそれに入れる必要があります。ここでは apply() は必要ありません:
04 17 2 10 3 13 4 16 5 19 6 22 7 25 8 28 ...... dtype: int32
output:
myseries.apply(lambda x: (x+5)/x**2)
そして、DataFarme テーブル データが見つかった場合も、同じ操作が実行されます。
0 0.562500 1 0.244898 2 0.150000 3 0.106509 4 0.082031 5 0.066482 6 0.055785 7 0.048000 ...... dtype: float64
出力:
df = pd.read_csv(r'Dummy_Sales_Data_v1.csv') df["Sales_Manager"] = df["Sales_Manager"].apply(lambda x: x.upper()) df["Sales_Manager"].head()
そして、apply() メソッドを使用して処理する方が、str.upper() メソッドを使用して直接処理するよりも高速です。 !
使用に適さないシナリオ
では、使用に適さないシナリオとは何でしょうか?まず第一に、ラムダ関数は匿名関数として、次のような変数に代入するのには適していません:
0PABLO 1PABLO 2KRISTEN 3ABDUL 4 STELLA Name: Sales_Manager, dtype: object
squared_sum = lambda x,y: x**2 + y**2 squared_sum(3,4)
出力:
def squared_sum(x,y): return x**2 + y**2 squared_sum(3,4)
次の状況に遭遇した場合、コードを少し簡略化できます:
25
出力:
import math mylist = [10, 25, 40, 49, 65, 81] sqrt_list = list(map(lambda x: math.sqrt(x), mylist)) sqrt_list
次のように簡略化できます。 :
[3.16227766, 5.0, 6.324555320, 7.0, 8.062257748, 9.0]
output:
import math mylist = [10, 25, 40, 49, 65, 81] sqrt_list = list(map(math.sqrt, mylist)) sqrt_list
Pythonの組み込み関数、特に数学などの算術に使用されるモジュールの場合は、ラムダ関数内に置く必要はありませんが、直接引き出して使用することもできます
以上がPython での Lambda 関数の使用法に関する簡単な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。