티스토리 뷰
Numpy
딥러닝 Input 데이터 (3차원 이상의 배열)
Numpy 라이브러리로 구현
특징
고속 연산
- 파이썬 리스트에 비해 빠른 속도와 좋은 메모리 효율
- 선형대수 연산이 가능
- 쉬운 데이터 배열 처리(반복문 필요 없음)
쉽고 빠른 배열 전환
- 3차원에서 2차원으로 전환(차원 변경)
(3,2,4) > (4,6)
다양한 내장 함수 제공
- 축(axis)에 따른 집계 연산 가능
- 배열의 형태 조전이 맞으면 다른 배열과 연결 가능
- 손쉬운 랜덤 샘플링 가능(난수 생성)
행별, 열별 연산
Numpy 배열
ndarray의 shape/ndim/size 속성을 이용하면
배열의 형태/차원/원소 개수 파악 가능
(2,4,4) -> shpae
ndim -> 3
size : 32
Pandas 라이브러리
Dataframe(Pandas)
통계 분석 / 머신러닝
Pandas 라이브러리로 구현
강력한 스프레드시트 처리(쉽고 빠르게 데이터 선택 가능)
데이터 통계 분석 (데이터 끼리 묶기 가능)
Dataframe과 series로 구분하여 나타낼 수 있다.
DataFrame(엑셀과 같은 형태)
나이 | 성별 | |
사람1 | 33 | 남 |
사람2 | 28 | 여 |
Series
나이 |
33 |
28 |
성별 |
남 |
여 |
데이터 프레임의 열로 구성된 형태
데이터 프레임의 행은 Recod라고 부른다
Numpy의 데이터 선택
arr이라는 넘파이 array가 있다고 가정
[[1,2,3,4],[5,6,7,8]]
Slicing - arr[1,:] = [5,6,7,8]
Indexing - arr[1,0] = 5
리스트와 다르게 [x,y] 표기법 가능
Boolean Indexing - arr[arr >3] - array에서 3보다 큰 요소들을 선택하라
= [4, 5, 6, 7, 8[
Fancy Indexing - arr[[0,0]]
대괄호로 한 번 더 감싸면, 배열에 인덱싱 값을 주어 반환
=[[1,2,3,4],[1,2,3,4]]
즉, 인덱스 안의 번호도 선택 가능하다.
Pandas의 데이터 선택
데이터 가정
id | a | b | c |
0 | 0 | 2 | 5 |
1 | 22 | 27 | 19 |
2 | 7 | 24 | 14 |
slicing - df[0:2]
id | a | b | c |
0 | 0 | 2 | 5 |
1 | 22 | 27 | 19 |
id를 기준으로 슬라이싱
indexing - df['a']
column 이름으로 명시
시리즈 형식으로 나타난다
0 | 0 |
1 | 22 |
2 | 7 |
Boolean Indexing
df[df['a'] > 20]]
id | a | b | c |
1 | 22 | 27 | 19 |
Fancy Indexing
df[['a','b']]
id | a | b |
0 | 0 | 2 |
1 | 22 | 27 |
2 | 7 | 24 |
loc 인덱서
df.loc[0,'a'] =0
df.loc[0,['a','b]] = [0,2]
사용법 : df.loc[행, 원하는 열의 이름]
loc는 원하는 행렬의 이름을 정확히 입력하는 게 필요하다.
iloc 인덱서
df.iloc[1,0] =22
df.iloc[1,[0,1]] = 22,27
사용법 : df.iloc[행, 열의 순서]
loc는 원하는 열의 번호를 정확히 입력하는 게 필요하다.