권철민 저, '파이썬 머신러닝 완벽 가이드', 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형, 문자열 > 문자열 / 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문 안 돌려도 됨)
1.2.4 행렬 정리, sort()와 argsort()
- default가 오름차순, 내림차순은 [::-1]을 추가
- 축방향 설정으로 축별 정렬이 가능, axis=0 ,1 ,2
- 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 |
댓글