1. 강의 내용
6. numpy
Numerical Python
파이썬의 고성능 과학 계산용 패키지 - 선형대수와 관련된 다양한 기능 제공
Matrix와 Vector와 같은 Array 연산의 표준
일반 리스트에 비해 빠르고 효율적
반복문 없이 배열 처리
ndarray
test = np.array([1,4,5,8],float) 함수 활용 배열 생성
하나의 데이터타입만 넣을 수 있음
test.shape : test 배열의 shape 반환 ( 크기, 형태 )
test.dtype : test 배열의 데이터 타입 반환
test.nbytes : ndarray object의 메모리 크기 반환
Handling Shape
- reshape : Array의 shape 크기 변경
- flatten : 다차원 array를 1차원 array로 변환
indexing & slicing
- indexing : 이차원 배열에서 [0,0] 표기법
- slicing : 행과 열부분 나눠서 slicing 가능
creation function
- arange : array의 범위를 지정하여 값의 List 생성
- zeros : 모든 원소 0인 array 생성
- ones : 모든 원소 1인 array 생성
- empty : shape만 주어지고 비어있는 ndarray 생성
- something_like : 기존 ndarray의 shape 크기 만큼 1,0 또는 empty array 반환
test_matrix = np.arange(30).reshape(5,6)
np.ones_like(test_matrix)
- identity(n) : 크기가 n인 단위 행렬 생성
- eye(행, 열, k) : 대각선이 1인 행렬, k값의 시작 index 변경 가능
np.eye(3,5,k=2)
# array([[0,0,1,0,0],
# [0,0,0,1,0],
# [0,0,0,0,1]])
- diag(matrix, k) : 대각행렬의 값 추출, k 값으로 시작 인덱스 설정 가능
random sampling
np.random.uniform(0,1,10).reshape(2,5) # 균등분포
np.random.normal(0,1,10).reshape(2,5) # 정규분포
Operation functions
- axis : operation functions 실행할 때 기준이 되는 dimension 축
- sum : element들 간의 합
test_array = np.arange(1,13).reshape(3,4)
# array([[1,2,3,4],
# [5,6,7,8],
# [9,10,11,12]])
test_array.sum(axis=1) (행별로 모든 열 더하기)
# array([10,26,42])
test_array.sum(axis=0) (열 별로 모든 행 더하기)
# array([15,18,21,24])
- mean & std : element 간의 평균, 표준편차
- 다양한 수학 연산자 제공 (np.exp, np.sqrt,...)
- concatenate
- vstack : 같은 열끼리 붙이기
- hstack : 같은 행끼리 붙이기
array operations
- array 간의 사칙 연산 (shape 이 같을 때)
- dot product : 행렬곱
- transpose 또는 T : transpose
- broadcasting : shape이 다른 배열 간 연산 지원
ex) array에 스칼라 값 더하면 array의 모든 원소에 값 더하기
vector - matrix 간 연산도 지원
comparisons
- all & any: 데이터 전부 또는 일부가 조건에 만족 여부 반환
- 크기가 동일한 배열 비교하면 각 element의 비교 결과를 boolean type으로 반환
- np.where(조건,True일 때, False일 때) : 조건에 맞는 값 반환
- argmax & argmin : array 내 최대값 또는 최소값의 index 반환
boolean & fancy index
- boolean index : 특정 조건에 따른 값을 배열 형태로 추출
- fancy index : array를 index value로 사용해서 값 추출
# fancy index
a = np.array([2,4,6,8],float)
b = np.array([0,0,1,3,2,1],int) # 반드시 int로 선언
a[b]
# array([2,2,4,8,6,4] )
a.take(b) # 동일한 결과
numpy data i/o
- np.loadtxt & np.savetext : text 타입의 데이터를 읽고 저장
7. Pandas
- 구조화된 데이터의 처리를 지원하는 파이썬 라이브러리
- 인덱싱, 연산용 함수, 전처리 함수 등을 제공함
- 데이터 처리 및 통계 분석을 위해 사용
DataFrame : Data Table 전체를 포함하는 object
Series : DataFrame 중 하나의 column에 해당하는 데이터의 모음 object
dataframe indexing
df.loc[] : index location ( index 이름)
df.iloc[] : index position ( index number)
df.index = list(range(0,15)) : 인덱스 재설정
df.drop([1,2,3]) : 열이름, 인덱스 넘버로 drop
Series Operation
add / + : index 기준 연산 수행
겹치는 Index가 없을 경우 NaN 값으로 반환
DataFrame Operation
add,sub,div,mul
add / + : comumn과 index 모두 고려
add : NaN 값을 0으로 변환
Series + DataFrame : axis 기준으로 broadcasting 실행
lambda, map, apply
replace : map 함수의 기능 중 데이터 변환 기능만
apply : series 전체에 해당 함수 적용
applymap : series 단위가 아닌 element 단위로 함수를 적용, series에 apply 적용시킬 때와 같은 효과
pandas built in functions
- describe : Numeric type 데이터의 요약 정보
- unique : series data의 유일한 값 list 반환
- isnull : column 또는 row 값의 NaN 값의 index 반환
- sort_values : column 값 기준으로 데이터 sorting
- df['a'].corr(d['b']) : 두 변수간 상관계수, 전체 변수 간 상관계수
- cov : 공분산
- df.corrwith(d['a']) : d의 a 변수와 df의 모든 변수간 상관계수
2. Peer Session
- AI Boost camp
- Python Basics for AI 6 ~ 7강
- AI Math 5 ~ 7강
- 선택과제 1번 : Gradient Descent 공부
- 알고리즘 스터디
- 백준1058코드 리뷰
- 피어세션이 피어(Peer) 씁니다
- 팀별 소개
'Boostcamp AI Tech > [week 1-5] LEVEL 1' 카테고리의 다른 글
[Week 2 - Day1] Deep Learning Basic (0) | 2021.08.09 |
---|---|
[Week 1 - Day 5] AI Math 5-10 확률론, 통계학, CNN, RNN (0) | 2021.08.06 |
[Week 1 - Day 4] AI Math 1-4 벡터, 행렬, 경사하강법 (0) | 2021.08.05 |
[Week 1 - Day 2] Python 3,4,5 (0) | 2021.08.03 |
[Week 1 - Day 1] python 1,2 (0) | 2021.08.02 |