본문 바로가기

코딩/머신러닝&데이터 분석 강의

[머신러닝 인강] 4-1주차: lambda 함수의 이해, 파이썬 모듈

<4-1주차 수강 클립>

01. Python Programming 기초

22. 함수 이해 및 활용 - 04. 람다(lambda) 함수의 이해 및 사용하기

23. 함수 이해 및 활용 - 05. 함수 연습 문제 풀이

24. 파이썬 모듈 - 01. 모듈의 이해 및 사용과 import 방법

 


 

이번 주차에는 def 키워드로 정의하는 함수가 아닌

'익명함수'로 불리는 람다(lambda)함수의 사용법에 대해 알아봤습니다.

또한 '모듈'이라는 개념도 처음 등장하는 주차네요!

 

>>수강 인증샷<<

 


 

22-23. 함수 이해 및 활용 - 04. 람다(lambda) 함수의 이해 및 사용하기

 

-람다함수

단일문으로 표현되는 '익명함수' (한 줄로 간단하게 정의하는 함수)

즉, 함수의 이름이 없고 구현체만 존재하는 간단한 함수를 의미함

코드 상에서 한 번만 사용되는 기능이 있을 때, 굳이 함수로 만들지 않고 1회성으로 만들어 쓸 때 사용 → 심플한 코드로 표현 가능

#lambda 키워드 + 파라미터 + : + 리턴하고자 하는 값(연산)
square = lambda param1: param1**2
type(square) #function
square(5) #함수이므로 호출도 가능

ex) 람다함수 사용 예_sort 메소드

string객체의 메소드 중 sort함수는 'key' 파라미터(sorting의 기준 설정 시 사용됨)를 가짐

이 때, key 파라미터로는 '함수'를 전달해야 함 → 전달된 함수의 리턴값을 기준으로 오름차순 정렬

strings = ['bob', 'charles', 'alexander3', 'teddy']
strings.sort(key=lambda s: len(s))

print(strings)

 

-filter, map, reduce

람다함수가 유용하게 사용되는 대표적인 3가지 함수

함수형 프로그래밍의 기본 요소이기도 함

1. filter: 특정 조건(함수로 판단)을 만족하는 요소만 남기고 필터링 (만족하지 않는 요소의 경우 필터링 아웃시킴)

2. map: 각 원소를 주어진 수식(함수)에 따라 변형하여 새로운 리스트를 반환

3. reduce: 차례대로 앞 2개의 원소를 가지고 연산, 연산의 결과가 그 다음 연산의 입력으로 진행됨. 따라서 마지막까지 진행되면 최종 출력은 한 개의 값

 

-filter(함수, 리스트)

리스틑의 원소 각각이 함수의 입력 파라미터로 들어감

즉, 리스트 각 원소를 함수에 적용시켜 보는 것!

함수 리턴이 True면 살아남고(continue로 지나감) false면 필터링 아웃시킴

ex) 주어진 리스트에서 짝수만 남기고 홀수는 필터링 아웃 시키기

nums = [1, 2, 3, 6, 8, 9]
list(filter(lambda n: n % 2 == 0, nums))

 

-map(함수, 리스트)

기존 리스트를 함수로 매핑시켜서 새로운 리스트를 만듦 (기존 리스트에 원소의 추가, 삭제는 일어나지 x)

ex) 주어진 리스트의 원소들을 제곱한 값을 원소로 가지는 새로운 리스트 만들기

nums = [1, 2, 3, 6, 8, 9, 10, 11, 13, 15]
list(map(lambda n: n**2, nums))

 

-functools.reduce(함수, 리스트)

*)functools 모듈 안의 함수 → import 먼저 하기!

함수는 두 개의 파라미터를 받음

첫 두 원소를 가지고 연산을 한 결과(1)와 세 번째 원소(2) 사이에 동일한 연산

점점 처리해야 할 원소를 줄여나가면서 마지막으로 남은 하나의 값이 함수 리턴값!

ex) 리스트 내의 모든 숫자의 합

import functools

a = [1, 3, 5, 8]
functools.reduce(lambda x, y: x + y, a)

 

-함수 연습문제

  1. 주어진 숫자 리스트의 평균을 구하는 함수를 출력하시오

  2. 해당 숫자가 소수인지 아닌지 판별하시오.

  3. 2부터 해당 숫자사이에 소수가 몇개인지 출력하는 함수를 구하시오

 


 

24. 파이썬 모듈 - 01. 모듈의 이해 및 사용과 import 방법

 

-모듈 임포트

그동안 사용했던 함수들 처럼, 다양한 기능들이 미리 함수로 구현되어 모듈 형태로 제공

대표적으로 추후 과정에서 사용하게 될 아래의 모듈들이 존재

누군가 구현한 논리적인 덩어리들!

1. requests - HTTP 요청/응답 모듈

2. numpy - 수치해석 모듈 (파이썬의 경우 리스트가 느림, 고속으로 행렬 연산 등의 수치 해석할 수 있는 처리 모듈)

3. pandas - 데이터 분석 모듈

 

-import 키워드

import 키워드를 사용하여 해당 모듈 전체를 임포트할 수 있음

*) 주피터 노트북에서 해당 모듈 내에서 사용할 수 있는 메소드, 값, 클래스 etc 확인하기: '.' 연산자 찍고 tab키로 확인! 

import math #모듈 임포트

math.pi #모듈명 표시 후 해당 모듈 내의 상수값 사용 가능
math.cos(100)

 

-from import

from 모듈명 import 함수/상수/클래스/etc.. 

*) 주피터 노트북에서 사용가능한 모듈의 함수/상수/클래스 tab키로 확인

해당 모듈에서 특정한 타입만 import 해옴

from math import pi
from math import cos

print(pi) #math로부터(from사용) import한 경우 모듈명 명시x하고 사용 가능

 

-from import *

해당 모듈 내에 정의된 모든 것을 import

일반적으로 사용이 권장되지 않음 (패키지들 내에 중복된 이름이 있을 수 있음)

* 임포트를 할 경우 모듈명을 표시하지 않고 사용하기 때문에 명시적이지 않음

from math import *

sin(100) #모듈명 명시 않고 사용 가능

 

-as

모듈 import 시, alias(별명) 지정 가능

import math as m
m.exp(3) #math.exp(3) 대신 math모듈의 사용자 지정 별명 m 사용

 


강의 링크: https://bit.ly/3cB3C8y

반응형