3.1.5 집합
유일한 원소만 담는 정렬되지 않은 자료형이다.
set()
집합은 합집합, 교집합 , 차집합 , 대칭차집합 같은 산술 집한 연산을 제공한다.
union |
intersection &
3.1.6 리스트 집합사전표기법
리스트 표기법은 파이썬 언어에서 가장 사랑받는 기능 중 하나다.
dict_comp = {key-expr : value-expr for value in collection
if condition}
set_comp = {expr for value in collection if condition}
3.2 함수
함수는 파이썬에서 코드를 재사용하고 조직화하기 위한 가장 중요한 수단이다.
3.2.1 네임스페이스 스코프 지역함수
함수는 전역과 지역, 두가지 스코프 영역에서 변수를 참조한다.
변수의 스코프를 설명하는 다른 용어로 네임스페이스가 있다.
3.2.2 여러 값 반환하기
def f():
a = 5
b = 6
c = 7
return a,b,c
a,b,c = f()
튜플이 리턴된다.
3.2.3 함수도 객체다
파이썬에서는 함수도 객체이므로 다른 언어에서는 힘든 객체 생성 표현을 쉽게 할 수 있다.
정형화
데이터 정제
3.2.4 익명함수
익명함수 anonymous함수 혹은 람다lambda 함수라고 하는 값을 반환하는 단순한 한 문장으로 이루어진 함수
lambda 예약어
lambda x: x+2
람다함수는 데이터 분석에서 특히 편리한데, 이는 앞으로 알게 되겠지만 데이터를 변형하는 함수에서 인자로 함수를 받아야 하는 경우가 매우 많기 때문이다.
람다 함수가 익명 함수라고 불리는 이유 중 하나는 이 함수 객체에는 명시적인 __name__속성이 없기떄문이다.
3.2.5 커링 : 일부 인자만 취하기
커링은 수학자인 하스켈 커리의 이름에서 따온 컴퓨터 과학 용어로, 함수에서 일부 인자만 취하는 새로운 함수를 만드는 기법이다.
def add_numbers(x,y):
return x+y
add_five = lambda y : add_numbers(5,y)
add_numbers 의 두번째 인자를 커링했다.
functools 모듈의 partial 함수를 이용하면 이 과정을 단순화할 수 있다.
from functools import partial
add_five = partial(add_numbers,5)
3.2.6 제너레이터
파이썬은 리스트 내의 객체나 파일의 각 로우 같은 순차적인 자료를 순회하는 일관적인 방법을 제공한다.
이테레이터 프로토콜
for key in some_dict:
print(key)
dict_iterator = iter(some_dict)
list(dict_iterator )
제너레이터는 순회 가능한 객체를 생성하는 간단한 방법이다.
일반 함수는 실행되면ㄴ 단일 값을 반환하는 반면 제너레이터는 순차적인 값을 매 요청 시마다 하나씩 반환한다.
제너레이터를 생성하려면 함수에서 return을 하는 대신 yield예약어를 사용한다.
제너레이터 표현식
제너레이터를 생성하는 더 간단한 방법
gen = ( x** 2 for x in range(100))
itertools 모듈
표준 라이브러리 인 itertools모듈은 일반 데이터 알고리즘을 위한 많은 제너레이터를 포함하고 있다.
import itertools
first_letter = lambda x: x[0]
3.2.7 에러와 예외처리
에러 처리 필요
try:
except:
else:
finally:
IPython에서 예외 처리
%xmode
'책 > python for Data Analysis' 카테고리의 다른 글
04-1. NumPy 기본: 배열과 벡터 연산 (0) | 2021.01.31 |
---|---|
03-3 내장 자료구조, 함수, 파일 04. NumPy 기본: 배열과 벡터 연산 (0) | 2021.01.31 |
02-2. 파이썬 언어의 기본, IPython, 주피터 노트북 03. 내장 자료구조, 함수 , 파일 (0) | 2021.01.26 |
02. 파이썬 언어의 기본,IPython,주피터 노트북 (0) | 2021.01.19 |
01. 시작하기 전에 (0) | 2021.01.17 |