<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)
-함수 연습문제
-
주어진 숫자 리스트의 평균을 구하는 함수를 출력하시오
-
해당 숫자가 소수인지 아닌지 판별하시오.
-
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
'코딩 > 머신러닝&데이터 분석 강의' 카테고리의 다른 글
[머신러닝 인강] 5-1주차: 클래스와 인스턴스 (0) | 2021.03.19 |
---|---|
[머신러닝 인강] 4-2주차: 클래스와 인스턴스 (0) | 2021.03.14 |
[머신러닝 인강] 3-2주차: 함수 이해 및 활용, 기본 파라미터, 키워드 파라미터 이해, 변수의 스코프 이해 (0) | 2021.03.07 |
[머신러닝 인강] 3-1주차: 조건문과 반복문 (0) | 2021.03.02 |
[머신러닝 인강] 2-2주차: 조건문과 반복문 (0) | 2021.02.27 |