파이썬 람다함수(Lambda Function) - 람다시리즈 2부
앞서 파이썬 람다가 뭔지 알아봤습니다. 아직 못 보신 분은 아래 링크를 먼저 봐주세요.
- 이전보기: 파이썬 람다
이번에는 람다함수에 대해 알아볼까요? 먼저 그림부터 보겠습니다.
람다자체가 함수라서 람다함수라고 부르기엔 애매합니다만 풀어서 말하면 람다를 반환하는 함수라고 하는 것이 맞겠네요.
def sec2other(unit):
return lambda sec: sec/unit
sec2min = sec2other(60)
sec2hour = sec2other(3600)
print(sec2min(180))
print(sec2hour(7200))
초를 분이나 시간으로 환산하는 예제인데, 기존 방식이라면 변환식마다 함수를 따로 만들겠지만, 람다함수를 이용하여 사용할 함수를 그때 그때 정의해서 사용하는 식입니다. 초를 일(day)로 바꿔야한다면 한 줄만 더 추가하면 되겠죠?
다른 예제를 살펴볼까요? 해외여행이나 해외출장가서 금액을 보면 이게 한국돈으로 얼마인지 궁금하잖아요. 만약 가격을 입력하면 한화로 바꾸는 프로그램을 짠다고 했을 때, 어느나라에 갈 지 모르니 전세계 통화에 해당하는 함수를 모두 만들수도 있겠지만, 우린 람다함수를 만들었으니 그때그때 필요할 때만 만들어서 쓰면 되겠죠?
def other2won(unit):
return lambda price: price*unit
usd2won = other2won(1160.50) #달러환율
eur2won = other2won(1293.90) #유로환율
print(usd2won(10)) #10달러는 한국돈으로 얼마?
print(eur2won(15)) #15유로는 한국돈으로 얼마?
두 예제 모두 일시적으로 사용했다기 보다는 함수 정의를 그때 그때 바꿀 수 있어 편리함과 확장성이 돋보이네요. 하지만 함수도 변수와 같이 객체처럼 다루고 있기때문에 일시적으로 사용한다는 감을 잡으실 수 있습니다. 변수라는 것도 계속 사용한다기 보다는 계산 상 혹은 잠시 값을 저장하는 용도로 일시적으로 사용하고 버리기는 경우가 대부분입니다. 다음에는 함수를 객체처럼 다뤄서 일시적으로 사용한 예제를 살펴보면서 람다의 파워를 느껴보시죠.
둘러보기
인공지능 및 머신러닝 관련된 커뮤니티입니다. 편하게 놀러오셔요~
케라스 코리아 커뮤니티
캐글 코리아 커뮤니티
MLOps KR 커뮤니티
책 소개
[추천사]
- 하용호님, 카카오 데이터사이언티스트 - 뜬구름같은 딥러닝 이론을 블록이라는 손에 잡히는 실체로 만져가며 알 수 있게 하고, 구현의 어려움은 케라스라는 시를 읽듯이 읽어내려 갈 수 있는 라이브러리로 풀어준다.
- 이부일님, (주)인사아트마이닝 대표 - 여행에서도 좋은 가이드가 있으면 여행지에 대한 깊은 이해로 여행이 풍성해지듯이 이 책은 딥러닝이라는 분야를 여행할 사람들에 가장 훌륭한 가이드가 되리라고 자부할 수 있다. 이 책을 통하여 딥러닝에 대해 보지 못했던 것들이 보이고, 듣지 못했던 것들이 들리고, 말하지 못했던 것들이 말해지는 경험을 하게 될 것이다.
- 이활석님, 네이버 클로바팀 - 레고 블럭에 비유하여 누구나 이해할 수 있게 쉽게 설명해 놓은 이 책은 딥러닝의 입문 도서로서 제 역할을 다 하리라 믿습니다.
- 김진중님, 야놀자 Head of STL - 복잡했던 머릿속이 맑고 깨끗해지는 효과가 있습니다.
- 이태영님, 신한은행 디지털 전략부 AI LAB - 기존의 텐서플로우를 활용했던 분들에게 바라볼 수 있는 관점의 전환점을 줄 수 있는 Mild Stone과 같은 책이다.
- 전태균님, 쎄트렉아이 - 케라스의 특징인 단순함, 확장성, 재사용성을 눈으로 쉽게 보여주기 위해 친절하게 정리된 내용이라 생각합니다.
- 유재준님, 카이스트 - 바로 적용해보고 싶지만 어디부터 시작할지 모를 때 최선의 선택입니다.