Pythonデータ分析の4つの高度な機能

匿名関数

  • 関数を定義するためにdefを使用する必要はありません
  • 特定の名前なし
  • ラムダを使用して関数を定義する
  • 文法構造:ラムダpar1、par2、... parn:式

#冒号前面是参数,冒号后面是表达式,也是所要返回的结果
g = lambda x:x**2
g(2)

ここに画像の説明を挿入

マップ機能

map()メソッドは、関数をシーケンスの各要素にマップして、すべての関数の戻り値を含む新しいシーケンスを生成します。大まかに言えば、シーケンスの各要素はx変数として扱われ、関数f(x)に入れられます。結果は、f(x1)、f(x2)、f(x3)...の新しいシーケンスになります。

  • map関数はイテレータを返します
  • メソッドの呼び出し:
    map(function、list_input)
    関数は関数を表します
    list_inputは入力シーケンスを表します

#定义一个列表
items = [1,2,3,4,5,6]
def f(x):
	return x**2
map(f,items)
list(map(f,items))

ここに画像の説明を挿入

機能を減らす

定義:
反復シーケンス中に、最初の2つの要素(2つのみ)が関数に渡されます。関数が処理された後、結果と3番目の要素が2つのパラメーターとして関数に渡されます。類推すると、1-100の累積合計を求めるようなものです。

  • reduce関数は組み込み関数ではないため、サードパーティのライブラリをインポートする必要があります
  • 削減機能は直接使用できません
  • 縮小(関数、反復可能)
    関数:代表的な関数
    反復可能:シーケンス

from functools import reduce
def f(x,y):
	return x + y
items = [1,2,3,4,5,6,7,8,9,10]
result = reduce(f,items)
result
#求1-100累加和
items = range(1,101)
result = reduce(f,items)
result

ここに画像の説明を挿入
ここに画像の説明を挿入

フィルター機能

  • シーケンスのフィルタリング、条件を満たさない要素の除外、および条件を満たす要素のシーケンスの返却に使用されます
  • 関数はシーケンスの各アイテムに順番に適用されます。つまり、関数(アイテム)であり、戻り値がTrueであるアイテムはリスト/文字列/タプル(シーケンスのタイプによって異なります)を形成します
  • Python3統合戻り反復子

filter(lambda x:x%2==0,range(21))
list(filter(lambda x:x%2==0,range(21)))

ここに画像の説明を挿入

items = [1,2,3,4,'3263','chen','-34.56',45.8]
list(filter(lambda x:1 if isinstance(x,int)else 0,items))

ここに画像の説明を挿入
または:

def int_num(x):
	if isinstance(x,int):
		return True
	else:
		return False
list(filter(int_num,items))

ここに画像の説明を挿入

元の記事を26件公開 賞賛5件 777回訪問

おすすめ

転載: blog.csdn.net/weixin_44730235/article/details/104924020