Exception
try:
예외 발생 가능 코드
except <Exception Type>:
예외 발생시 동작하는 코드
else:
예외가 발생하지 않을 때 동작하는 코드
# try ~ except ~ finally
finally:
예외 발생 여부와 상관없이 실행됨
필요에 따라 강제로 Exception을 발생
raise <Exception Type>(예외 정보)
특정 조건에 만족하지 않을 경우 예외 발생
assert 예외조건
File
컴퓨터에서 정보를 저장하는 논리적인 단위
실행, 쓰기, 읽기 등을 할 수 있음
종류
f = open("파일 이름", "접근 모드")
f.close()
## 접근 모드
"r" # 읽기 모드
"w" # 쓰기 모드 (encoding도 같이 써야한다 -> 문자를 저장하는 방식 선택)
"a" # 추가 모드 (파일의 마지막에 새로운 내용 추가)
# with 구문 사용 가능
with open("파일 이름", "접근 모드") as my_file:
...
Log Handling
logging
logging 모듈
logging level
설정 방법
CSV (Comma Separate Value)
파이썬 CSV 객체
import csv
reader = csv.reader(f, delimiter=',', quotechar='"', quoting=csv.QUOTED_ALL)
Web
우리가 늘 쓰는 인터넷 공간의 정식 명칭 (WWW 줄여서 Web)
동작 과정
HTML (Hyper Text Markup Language)
정규식 (regular expression)
XML
JSON (JavaScript Object Notation)
JS의 데이터 객체 표현 방식
간결성으로 이해하기 쉬움
데이터의 용량이 적고, code로의 전환이 쉬움
{
"color": "red",
"name": "john",
"number": 1
}
Numpy
ndarray
배열
하나의 데이터 type만 배열에 넣을 수 있음
리스트와 구조 비교
ref. https://jakevdp.github.io/blog/2014/05/09/why-python-is-slow/
생성
import numpy as np
test_array = np.array([1, 2, 3], int)
test_array # array([1, 2, 3])
print(test_array.dtype) # Array 전체의 데이터 Type을 반환
print(test_array.shape) # Array의 shape를 반환
print(test_array.nbytes) # Array의 메모리 크기를 반환
handling shape
indexing & slicing
indexing: 이차원 배열에서 [0, 0] 표기법을 제공
slicing: list와 달리 행과 열 부분을 나눠서 slicing 가능
test = np.array([[1, 2], [3, 4]], int)
test[0][0] # 1
test[0, 0] # 1
test = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]], int)
test[:,2:] # 전체 row의 2열 이상
test[1, 1:3] # 1 row의 1열 ~ 2열
test[1:3] # 1 row ~ 2 row의 전체
ref. https://www.slideshare.net/PyData/introduction-to-numpy
function
axis: 모든 operation function을 실행할 때 기준이 되는 dimension 축
sum, mean, std 등 다양한 수학 연산자를 제공함
array 간의 기본적인 사칙 연산 지원
dot product
ref. https://www.mathsisfun.com/algebra/matrix-multiplying.html
transpose
broadcasting: shape이 다른 배열 간 연산을 지원하는 기능
Comparisons
all: 데이터 전부가 조건에 만족하는지 반환
any: 데이터 일부가 조건에 만족하는지 반환
where
np.where( 조건, True일 때 값, False일 때 값)
argmax & argmin: array내 최대값 또는 최소값의 index를 반환
boolean index: 특정 조건에 따른 값을 배열 형태로 추출
fancy index: numpy는 array를 index value로 사용해서 값 추출
data i/o
Pandas
Series
dataframe 중 하나의 column에 해당하는 데이터의 모음 object
values: data 리스트만 반환
index: index 리스트만 반환
Dataframe
data table 전체를 포함하는 object
loc: index 이름을 기준으로 indexing
iloc: index number를 기준으로 indexing
transpose
values: 값 출력
to_csv: csv로 변환
del: column 삭제
operations
사칙 연산 지원 (겹치는 index가 없을 경우 NaN 값으로 반환)
apply: map과 달리, series 전체(column)에 해당 함수를 적용
describe: Numeric type 데이터의 요약 정보를 보여줌
unique: series data의 유일한 값을 list로 반환
sql group by 명령어와 같음
split → apply → combine 과정을 거쳐 연산
한 개 이상의 column을 묶을 수 있음
unstack: group으로 묶여진 데이터를 matrix 형태로 전환해줌
swaplevel: index level을 변경할 수 있음
operations: index level을 기준으로 기본 연산 수행 가능
merge: sql에서 많이 사용하는 merge와 같은 기능 (두 데이터를 하나로 합침)
join method
concat: 같은 형태의 데이터를 붙이는 연산 작업
ref. https://pandas.pydata.org/pandas-docs/stable/merging.html