Search
Duplicate

Numerical Python - Numpy

생성일
2023/02/16 14:39
태그

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 형태의 데이터도 가능