numpy는 배열 자료구조를 제공하여 다차원 벡터에 대해 효율적으로 연산을 수행할 수 있도록 돕는 라이브러리로 ML, DL 분야에 필수적으로 사용되는 라이브러리이다.
numpy 라이브러리의 특징은 다음과 같다.
numpy가 제공하는 배열 객체로서 size, ndim, shape 속성을 가져, 배열의 속성을 쉽게 알 수 있다.
size : 배열의 크기를 나타냄.ndim : 배열의 차원을 나타냄 (1차원, 2차원 ...)shape : 배열의 형태를 나타냄.numpy에서는 데이터를 탐색 및 특정 조건에 맞는 데이터를 선택하기 위한 4가지 방법이 제공된다.
데이터 선택
arr[1, 0] 가능 (리스트는 안 됨.)조건 검색
Boolean indexing : 특정 조건에 해당하는 데이터만 추출
ex. arr[arr>3] : 3보다 큰 데이터만 추출
Fancy indexing : 리스트에 인덱싱 값을 주어 변환
ex. arr[[0,0]] : 해당 arr의 0번째 index를 가져와
[0 indexing 내용, 0 indexing 내용]으로 바꾼다.
numpy와 마찬가지로 데이터 분석에 필수적인 라이브러리로 스프레드시트 기능으로 강력한 데이터 통계 및 분석 능력을 제공한다.
Pandas의 특징은 다음과 같다.
Pandas는 1차원 자료형으로 series, 2차원 자료형으로 Dataframe를 제공한다. (3차원 자료형도 제공하나, 일반적으로 잘 쓰이지는 않는다.)
pandas에서도 Numpy와 동일한 데이터를 탐색 및 특정 조건에 맞는 데이터를 선택하기 위한 4가지 방법이 제공된다. (다만, 대상은 Dataframe)
데이터 선택
df['컬럼 명'] - return은 series 형태로 가져온다.조건 검색
Boolean indexing : 특정 조건에 해당하는 데이터만 추출
ex. df[df['a']>20] : a 컬럼에서 20보다 큰 데이터만 추출
Fancy indexing : 리스트에 인덱싱 값을 주어 변환
ex. df[['a','b']] : 컬럼a와 컬럼 b의 모든 데이터 추출
데이터 프레임은 행 선택이 어려운 slicing과 indexing을 보완하여 아래의 인덱서를 제공한다.
loc[행, 원하는 열 이름(문자열)] : ex. loc[0, 'a']iloc[행, 열의 번호] : ex. iloc[0, 1]
해당 내용 관련 코드 정리는 아래의 링크 참고