본문 바로가기
Boostcamp AI Tech/[week 1-5] LEVEL 1

[Week 1 - Day 3] Python 6,7 (Numpy, Pandas)

by newnu 2021. 8. 5.
반응형

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

  1. AI Boost camp
  • Python Basics for AI 6 ~ 7강
  • AI Math 5 ~ 7강
  • 선택과제 1번 : Gradient Descent 공부
  1. 알고리즘 스터디
  • 백준1058코드 리뷰
  1. 피어세션이 피어(Peer) 씁니다
  • 팀별 소개
반응형