ãåããããªå°ããªé¢æ°ããã¡ãã¡ def ã§å®çŸ©ããã®ãé¢åâŠãããªã¹ãã®äžããæ¡ä»¶ã«åãèŠçŽ ã ããåãåºãåŠçãããã£ãšã«ãã³ããæžãããïŒããããªã¢ã€ã¢ã€ãäžæ°ã«è§£æ¶ããŠãããã®ã lambdaïŒã©ã ãåŒïŒã§ãã
ã©ã ãåŒã䜿ãããªããããã«ãªããšãã³ãŒãã¯ãã£ãšã¹ãããªãããã map ã filter ãšçµã¿åãããããšã§ãããŒã¿ã«å¯ŸããåŠçããäžè¡ã§è¡šçŸã§ããããã«ãªããŸãâš ã©ã€ãã©ãªã®ããã¥ã¡ã³ããOSSã®ã³ãŒããã°ããšèªã¿ãããæããããŠãPythonã®äžçãããã«åºãã£ãŠããæèŠãå³ãããŸããã
ã©ã ãåŒãšã¯ãååãä»ããã«äœãå°ããªé¢æ°ãªããžã§ã¯ãã®ããšãPythonã§ã¯ãç¡å颿°ããšãåŒã°ããŸããæ®æ®µäœ¿ã def 颿°ãšéã£ãŠããã®å Žã§ãµããšäœã£ãŠäœ¿ãæšãŠãã€ã¡ãŒãžã§ãã
æžãæ¹ã¯ãšãŠãã·ã³ãã«ã
lambda åŒæ°: åŠç
åŒæ°ãè€æ°æå®ããããšãã¯ãã«ã³ãåºåãã§äžŠã¹ãã ãã
lambda x, y: åŠç
ãã€ã³ãã¯ãåŠçã®éšåã¯1è¡ã§ããæžããªããšããããšãè€éãªåŠçã¯éåžžã® def 颿°ã§æžãã®ãåºæ¬ã§ãã©ã ãåŒã¯ãã¡ãã£ãšããåŠçããã£ãšè¡šçŸããããšããã«æŽ»èºããŸãã
# åŒæ°ã®æååã®æ«å°Ÿã«ã!ããã€ããŠprintããã©ã ãåŒ
lambda x: print(x + "!")
ããã ãã§ãåŒæ° x ãåãåã£ãŠæ«å°Ÿã« ! ãã€ããŠè¡šç€ºãã颿°ãªããžã§ã¯ããåºæ¥äžãããŸããã·ã³ãã«ã§ãããð
äœã£ãã©ã ãåŒã¯å€æ°ã«ä»£å ¥ããããšãå¯èœã§ãã
func = lambda x, y: print(x + "ããã¯" + y + "ã§ã")
func("éŽæš", "åŠç")
# éŽæšããã¯åŠçã§ã
ãã ãããã®ããã«å€æ°ã«ä»£å
¥ããæžãæ¹ã¯Pythonã®å
¬åŒã¹ã¿ã€ã«ã¬ã€ãïŒPEP8ïŒã§ã¯æšå¥šãããŠããŸããããã ã£ããæ®éã« def ã§æžãã°ããããïŒããšããã®ãçç±ã§ãã
ãããããæžãæ¹ãã§ããããšç¥èãšããŠæŒãããŠããã€ã€ãæ¬æ¥ã®ã©ã ãåŒã®äœ¿ãã©ããã¯å¥ã«ããããšèŠããŠãããŸãããã
ã©ã ãåŒãæ¬é ãçºæ®ããã®ã¯ãã颿°ãåŒæ°ãšããŠåãåã颿°ããšçµã¿åããããšãã§ããä»£è¡šæ Œã map ãš filterãã©ã¡ããPythonã«æåããçµã¿èŸŒãŸããŠãã颿°ã§ãç¹°ãè¿ããªããžã§ã¯ãïŒãªã¹ããªã©ïŒã«å¯ŸããŠåŠçãäžçºã§é©çšã§ããŸãã
map ã¯ããªã¹ãã®å
šèŠçŽ ã«åãåŠçãå ããŠãæ°ãããªã¹ããäœãããããšãã«äœ¿ã颿°ã§ãã
names = ["ç°äž", "éŽæš", "äœè€"]
result = list(map(lambda x: x + "ãã", names))
print(result)
# ['ç°äžãã', 'éŽæšãã', 'äœè€ãã']
map èªäœã¯ map ãªããžã§ã¯ããè¿ããŠããã®ã§ãæçµçã« list() ã§ãªã¹ãã«å€æããã®ãå¿ããã«ð
n1 = ["ç°äž", "éŽæš", "äœè€"]
n2 = ["倪é", "è±å", "次é"]
result = list(map(lambda x, y: x + y + "ãã", n1, n2))
print(result)
# ['ç°äžå€ªéãã', 'éŽæšè±åãã', 'äœè€æ¬¡éãã']
åŒæ°ãå¢ããã°ãè€æ°ã®ãªã¹ãããäžã€ãã€èŠçŽ ãåãåºããŠåæã«åŠçã§ããŸããããŒã¿ã®çªãåãããããããšãã«éå®ãããã¯ããã¯ã§ãð€
filter ã¯ãããæ¡ä»¶ã True ã«ãªãèŠçŽ ã ããåãåºããŠãæ°ãããªã¹ããäœãããããšãã«äœ¿ã颿°ã§ãã
True / False ãè¿ãïŒnumbers = [3, 8, 12, 5, 20, 7]
result = list(filter(lambda x: x >= 10, numbers))
print(result)
# [12, 20]
ã10以äžããšããæ¡ä»¶ã«åœãŠã¯ãŸãèŠçŽ ã ãããããã«æœåºãããŸãããæ¡ä»¶åŒãå€ããã ãã§ãç°¡åã«å¿çšãå©ããŸãð¡
ããããããã£ãŠãªã¹ãå
å
衚èšã§ãæžããããïŒããšæã£ãæ¹ããã®éãã§ããPythonã§ã¯åãããšãè€æ°ã®æ¹æ³ã§æžããããšãå€ããã©ã ãåŒ + map / filter ã¯ãªã¹ãå
å
衚èšã§ã代çšã§ããŸãã
# mapç
result = list(map(lambda x: x + "ãã", names))
# ãªã¹ãå
å
衚èšç
result = [x + "ãã" for x in names]
# filterç
result = list(filter(lambda x: x >= 10, numbers))
# ãªã¹ãå
å
衚èšç
result = [x for x in numbers if x >= 10]
䜿ãåãã®ç®å®ã¯æ¬¡ã®éãã§ãã
map / filter ã䟿å©ããšãã°ãPandasã©ã€ãã©ãªã® DataFrame ã® map ã apply ã¡ãœããã§ã¯ãã©ã ãåŒãå§åçã«äœ¿ãããŸããããŒã¿åæã®äžçã§ã¯ãã©ã ãåŒãèªããããšããã¹ã¿ãŒãã©ã€ã³ã«ãªããã§ãð
ã©ã ãåŒã¯ãé ã§çè§£ããããããå®éã«æžããŠåãããããšã§èº«ã«ã€ãåéãè¯æžãšå¿«é©ãªäœæ¥ç°å¢ãæããŠãPythonã®ãçããŠã«ãã³ããæžãæ¹ããèªåã®ãã®ã«ããŠãããŸãããã
颿°ã»ãªã¹ãå å 衚èšã»ã©ã ãåŒãšãã£ãåºç€ããå³è§£ãšãµã³ãã«ã§äžå¯§ã«è§£èª¬ãæ¬çš¿ã®å 容ãäœç³»çã«è£åŒ·ãããæ¹ã®æåã®äžåã«ãŽã£ããã§ãã
ãè€éãªåŒã®ä»£ããã«ãã«ããŒé¢æ°ãæžãããå å 衚èšãšãžã§ãã¬ãŒã¿åŒã䜿ãåããããªã©ãã©ã ãåŒãšé¢é£ãããã¹ããã©ã¯ãã£ã¹ã90é ç®ã§ç¶²çŸ ããããæžãPythonã³ãŒãã«è¿ã¥ããŸãã
Pandasã®DataFrameã«å¯Ÿãã apply ã map ãªã©ãã©ã ãåŒã倧掻èºããåéã®æ±ºå®çãæ¬çš¿ã®ã©ã ãåŒãã宿пå
¥ãã§ããã¬ãã«ãŸã§åŒãäžããŠãããŸãã
éãã§ã¹ã ãŒãºãªæéµæãšããã¯ã©ã€ãã§ãé·æéã®ã³ãŒãã£ã³ã°ãå¿«é©ãlambda ã mapãfilter ãšãã£ãããŒã¯ãŒããäœåºŠãæã¡èŸŒãåŠç¿ã¹ã¿ã€ã«ãšã®çžæ§ãæçŸ€ã§ãã
å·Šã«ãšãã£ã¿ãå³ã«REPLãå ¬åŒããã¥ã¡ã³ãã䞊ã¹ãŠãããšãã©ã ãåŒã®æåã確èªããªããåŠã¹ãŸããUSB-Cäžæ¬ã§æ¥ç¶ã§ããã¢ãã«ãªããããŒãPCåŠç¿è ã§ããã¹ã¯åšããã¹ãããªæŽããŸãã
åºæ¬ã¯ defããã®å Žéãã§äœ¿ãå°ããªåŠç㯠lambdaããšèŠããŠããã°OKã§ãããlambda ã倿°ã«ä»£å
¥ããŠããããããªãæåãã def ã§æžããæ¹ãããããšããã®ãPythonå
¬åŒã®èãæ¹ã§ãã
äžé
æŒç®åïŒx if æ¡ä»¶ else yïŒã¯äœ¿ããŸãããè€æ°è¡ã«ãããåŠçã¯æžããŸãããè€éãªããžãã¯ãå¿
èŠãªããè¿·ãã def ã§é¢æ°ãäœããŸãããã
å€ãã®å Žåããªã¹ãå
å
衚èšã®æ¹ãé«éãã€èªã¿ããããšãããŠããŸãããã ãã颿°ãåŒæ°ãšããŠåãåãAPIïŒsorted ã® key ã Pandas ã® apply ãªã©ïŒã«æž¡ããšã㯠lambda ãå¿
é ã§ãã
ã¯ãã倧掻èºããŸããããšãã° sorted(users, key=lambda u: u["age"]) ã®ããã« key åŒæ°ã«ã©ã ãåŒãæž¡ããšãèŸæžã®ãªã¹ãã幎霢é ã«äžŠã³æ¿ãããšãã£ãåŠçãäžè¡ã§æžããŸãã
æ¬åœã§ããPandasã® DataFrame.apply() ã Series.map() ã§ã¯ãã©ã ãåŒãæ¥åžžçã«ç»å ŽããŸããããŒã¿åæã»æ©æ¢°åŠç¿ã®çŸå Žã§ã¯ãã©ã ãåŒãèªãããã©ããã§ã³ãŒãã®çè§£ã¹ããŒãã倧ããå€ãããŸãã
ã©ã ãåŒã¯ãPythonã«ãååã®ãªãããã®å Žéãã®å°ããªé¢æ°ããšãã匷åãªéå
·ãæããŠãããŸããlambda åŒæ°: åŠç ãšããã·ã³ãã«ãªæ§æãèŠããã ãã§ãmap ã filterãsortedãPandasã® apply ãªã©ã颿°ãåŒæ°ãšããŠåãåãããããAPIãèªåšã«æããããã«ãªããŸãð
倧åãªã®ã¯ããªãã§ãã©ã ãåŒã§æžããããšã§ã¯ãªãããããã¯ã©ã ãåŒããã㯠defãããã¯ãªã¹ãå
å
衚èšããšé©æé©æã§éžã¹ãããã«ãªãããšããããªãã°ãããªãã®ã³ãŒãã¯ãã£ãšçããèªã¿ãããããããŠãèªã¿æã«äŒããããã®ã«ãªã£ãŠãããŸãã
ãæ°ã«å
¥ãã®æžç±ãšå¿«é©ãªäœæ¥ç°å¢ãæããŠã仿¥ãã lambda ãããªãã®ã³ãŒãã£ã³ã°éå
·ç®±ã«å ããŠã¿ãŠãã ãããæžããã³ãŒãã®å¹
ãäžæ°ã«åºããããã®æå¿ããæ¥œãã¿ãªããåŠç¿ãç¶ããŠãããŸãããâš
ð AIãšãããæåŒ·ã®çããæ¥…
ð 人éã®ãç¥èœã®å£ãã厩å£ã…
ð¡ïž ããªãã®PCã¯ãéµããã…
ð€ AIãšãŒãžã§ã³ãæä»£ã«ã皌…
âš æ¥ã ã®æäœãå¿å°ãããªã
ð AIæä»£ã®èœãšã穎ïŒã䟿婅