본문 바로가기
코딩/Machine Learning

1. Numpy

by 세자책봉 2020. 9. 8.
728x90

권철민 저, '파이썬 머신러닝 완벽 가이드', 2019.02.28

내 맘대로 요약 공부 중(문제시 비공개 및 삭제)

최초 작성일 2020.09.08

 

1.1 Numpy란?

- 파이썬에서 선형대수 기반의 프로그램을 쉽게 만들 수 있도록 지원하는 패키지

- C/C++과 같은 저수준 언어 기반의 호환 API를 제공하여 기존 C/C++ 기반의 타 프로그램과의 연동 가능

- numpy의 기본 데이터 타입은 ndarray

- import numpy as np

 

1.2 ndarray 만들기

- np.array(), 파이썬의 리스트를 받아 ndarray로 변환하는 기능

- ndarray는 행과 열의 수를 튜플(Tuple)로 가진다.

- .shape으로 크기, .dim으로 차원 수 확인 가능

- 연산은 같은 데이터 타입만 가능(int는 int 끼리, float은 float 끼리)

- 데이터 생성 시, 자료형 지정 가능(dtype)

- 데이터 유형이 섞여있는 리스트를 ndarray로 받아오면, 크기가 큰 데이터 타입으로 일괄 변경됨

int형과 float형 동시에 존재하나 ndarray 변경 후, float형으로 지정 됨

- int형, 문자열 > 문자열 / int형, float형 > float형 / float형, 문자열 > 문자열

- 데이터 생성 후, 자료형 변경 가능(.astype('자료형))

1.2.1 ndarray 쉽게 만들기

- np.arange(), 0부터 함수 인자-1 까지 순차적 ndarray 데이터 생성

- np.zeros(), 모든 값을 0으로 채운 shape를 가진 ndarray 데이터 생성

- np.ones(), 모든 값을 1로 채운 shape를 가진 ndarray 데이터 생성

- np.zeros(), np.ones() 모두 default 자료형은 float64형(필요시 dtype으로 형 변환하여 생성)

1.2.2 ndarray 차원과 크기 변경

- .reshape() 기능으로 데이터 크기와 차원 변경 가능

- 당연하게도 데이터 개수는 맞춰서 변경 해야 함(데이터 갯수 안 맞으면 무조건 오류)

- 인자에 (-1,5)와 같이 '-1'은 5에 맞게 크기를 변환하라는 의미

- .tolist(), ndarray 데이터를 리스트 자료형으로 변환

1.2.3 ndarray 데이터 선택, 인덱싱(Indexing)과 슬라이싱(Slicing)

- 원하는 데이터의 인덱스 값을 [] 안에 입력하여 데이터 선택 가능

- 단일 데이터 변경 가능

- 2차원 데이터 선택 방법(좌표 찍는다고 생각하면 쉽다.)

- 데이터 슬라이싱, 연속한 데이터 추출 가능(1차원, 2차원 큰 차이 없다.)

- 불린 인덱싱(Boolean Indexing), 조건 필터링과 검색을 동시 수행 가능(For문 안 돌려도 됨)

A>5를 통해 True쪽 인덱스를 받아오며, 인덱스에 해당하는 값을 출력(B, C 출력 값이 다른 이유)

1.2.4 행렬 정리, sort()와 argsort() 

np.sort(A)는 원본을 바꾸지 않지만, A.sort()는 원본을 바꾼다.

- default가 오름차순, 내림차순은 [::-1]을 추가

- 축방향 설정으로 축별 정렬이 가능, axis=0 ,1 ,2

axis = 1 방향으로만 정렬된 모습

- np.argsort(), 원본 행렬이 정렬되었을 때 기존 원본 행렬의 원소에 대한 인덱스를 필요로 할 때

1.2.5 행렬 내적, 전치 행렬 구하기

- np.dot(A,B), 행렬 내적, 쉬운 수학 이론이라 A의 열과 B의 행의 크기가 같아야 한다는 것은 설명하지 않음

- np.transpose(A), 전치 행렬, 원본 행렬의 행과 열의 위치를 바꾸는 것

 

반응형

'코딩 > Machine Learning' 카테고리의 다른 글

5. 분류(Classification)_1  (0) 2020.12.10
4. 평가(분류 평가)  (1) 2020.11.29
3. Scikit-learn(사이킷런)  (0) 2020.10.24
2. Pandas  (0) 2020.09.12
Anaconda3로 Tensorflow-gpu 설치하기  (0) 2020.03.29

댓글