Numerical Python - Numpy
Numpy
•
파이썬의 고성능 과학 계산용 패키지
•
Matrix 와 Vector 와 같은 Array 연산의 사실상의 표준
•
일반 List에 비해 빠르고, 메모리 효율적
•
반복문 없이 데이터 배열에 대한 처리를 지원
•
선형대수와 관련된 다양한 기능을 제공
•
C, C++, 포트란 등의 언어와 통합 가능
conda install numpy
Shell
복사
import numpy as np
Python
복사
Array creation
•
shape : numpy array 의 object의 dimension 구성을 반환함
•
dtype : numpy array 의 데이터 type을 반환함
Array shape - ndim & size
•
ndim - number of dimension
# ndim : number of dimension
np.array(tensor, int).ndim
Python
복사
•
size - data 의 개수
# size : data의 개수
np.array(tensor, int).size
Python
복사
→ shape의 크기를 쫓아가는 것이 딥러닝에서 제일 중요하다
Array dtype
•
C의 data type과 compatible
•
딥러닝에서는 거의 float32, float64 많이 선언
Handling shape
reshape
•
Array의 shape 의 크기를 변경함 (element 의 갯수는 동일)
•
Array의 size만 같다면 다차원으로 자유로이 변경가능
-1 : size를 기반으로 row 개수 선정
flatten
•
다차원 array를 1차원 array로 변환
# 2 flat or flatten()
test_matrix = [[[1,2,3,4], [1,2,5,8]], [[1,2,3,4], [3,4,5,6]], [[2,3,4,5], [6,7,8,9]]]
np.array(test_matrix).flatten()
Python
복사
Indexing & Slicing
indexing
•
List와 달리 이차원 배열에서 [0, 0] 과 같은 표기법을 제공함
•
Matrix 일 경우 앞은 row, 뒤는 column을 의미함
slicing
•
List와 달리 행과 열 부분을 나눠서 slicing이 가능함
•
Matrix 의 부분 집합을 추출할 때 유용함
Creation Function
arange
•
array 의 범위를 지정하여, 값의 list를 생성하는 명령어
ones, zeros, and empty
•
zeros
◦
0으로 가득찬 ndarray 생성
•
ones - zero 와 동일
•
empty = shape 만 주어지고 비어있는 ndarray 생성
◦
메모리 초기화가 되지 않는다
something_like
•
기존 ndarray의 shape 크기 만큼 1, 0 또는 empty array를 반환
identity
•
단위 행렬 (i 행렬)을 생성함
np.identity(n = 3, dtype = np.int8)
np.identity(5)
Python
복사
eye
•
대각선인 1인 행렬, k 값의 시작 index 의 변경이 가능
random sampling
•
데이터 분포에 따른 샘플링으로 array 생성
np.random.uniform(0, 1, 10).reshape(2, 5) # 균등 분포
np.random.normal(0, 1, 10).reshape(2, 5) # 정규 분포
Python
복사
sum
•
ndarray의 element 들 간의 합을 구함, list의 sum 기능과 동일
axis
•
모든 operation function을 실행할 때, 기준이 되는 dimension 축
•
새로 생기는 축이 axis=0, 기존에 있던 축이 axis=1 이 된다
concatenate
•
Numpy array를 합치는 함수
Operations b/t arrays
•
Numpy 는 array 간의 기본적인 사칙 연산을 지원한다
Element-wise operations
•
Array간 shape 이 같을 때 일어나는 연산
Dot product
•
Matrix 의 기본 연산
•
dot 함수 사용
broadcasting
•
Shape 이 다른 배열 간 연산을 지원하는 기능
ex) Matrix + 스칼라
•
Scalar - Vector 외에도
•
Vector - matrix 간의 연산도 지원
All & Any
np.where
•
조건에 맞는 인덱스 값을 뱉어낸다
argmax & argmin
•
최대값의 인덱스, 최소값의 인덱스 찾을 때
boolean index
•
numpy는 배열은 특정 조건에 따른 값을 배열 형태로 추출 할 수 있음
•
조건이 true인 index의 element만 추출
•
Comparison operation 함수들도 모두 사용가능
fancy index
•
numpy 는 array를 index value 로 사용해서 값을 추출하는 방법
•
Matrix 형태의 데이터도 가능