[Python] Numpy

Jeonghyun·2022년 9월 21일
0

Python 이론

목록 보기
7/9

Numerical Python
선형대수 계산식 라이브러리

  • 일반 list에 비해 빠르고 메모리 효율적
  • 반복문 없이 데이터 배열에 대한 처리 지원
import numpy as np     # np는 별칭

ndarray

np.array([1,2,3,4,5],int)

하나의 데이터 타입만 배열에 넣을 수 있음
다른 데이터를 입력해도 dtype으로 자동 형변환

example.dtype : 배열 전체의 데이터 타입 만환
example.shape : 배열의 shape을 반환

ndarray의 표현


ndim : number of dimensions
size : data의 개수

handling shape

reshape    # array의 shape의 크기를 변경
np.array(example).reshape(2,4).shape
np.array(example).reshape(-1,2).shape     # -1 : size 기반으로 row를 자동 조정
flatten    # 다차원 array를 1차원으로 변환

Indexing

이차원 배열에서의 표기법 [0][0] = [0, 0] 가능

slicing

행과 열을 나누어 slicing 가능

arr[:,2:]    # 전체 row, 2열부터
arr[1, 1:3]  # 1 row, 1~2 column
arr[1:3]     # 1~2 row
arr[:,::2]   # 전체 row, column은 2칸 씩 넘어가면서

creation function

arange

범위를 지정하여 값의 list 생성

np.arange(10)
np.arange(0, 5, 0.5)   # 시작, 끝, 간격
np.arange(30).reshape(5, 6)   # 생성 후 나누기

ones, zeros, empty

ones, zeros : 0과 1로 구성된 ndarray 생성

np.zeros(shape=(10,), dtype=np.int8)   # np.zeros(shape, dtype, order)

empty : shape만 주어지고 비어있음

np.empty(shape=10,), dtype=np.int8)

something_like

기존 ndarray의 shape 만큼 1, 0, empty array 반환

example = np.arange(30).reshape(5,6)
np.ones_like(example)

identity

  • 단위 행렬(i)
np.identity(n=3, dtype=np.int8)

eye

  • 대각선이 1인 행렬
np.eye(3,5,k=2) # k = 시작 index

diag

  • 대각 행렬의 값을 추출
example = np.arange(30).reshape(5,6)
np.diag(example)

random sampling

  • 데이터의 분포에 따른 sampling

operation function

  • sum
test_array.sum(dtype=np.float)
  • axis : operation function의 실행 기준이 되는 축
test.sum(axis=1)
  • mean & std : ndarray의 element들 간의 평균 또는 표준편차
  • concatenate : array를 합치는 함수
    vstack hstack concatenate

array operation

  • numpy는 array간의 사칙 연산 지원
  • element-wise operations (shape이 같을 때 연산)
  • dot product (행렬의 기본 연산)
  • transpose (전치)
  • broadcasting (shape이 다를 때 연산 지원)

comparisons

all & any : 조건에 만족하는지 여부 반환

np.any(a>5) # 하나라도 조건에 만족하면 true
np.all(a<5) # 모두 만족하면 true

numpy는 배열의 크기가 동일할 때 element간 비교를 bool로 변환

np.logical_and( , )
np.logical_not() 
np.logical_or( , )
np.where(condition, TRUE, FALSE)
np.isnan()
np.isfinite()
np.argmax()
np.argmin()
np.argsort()

boolean index

  • 특정 조건에 따른 값을 추출
condition = array > 3
array[condition]

fancy index

  • array를 index값으로 사용해서 추출
a = [1,2,3,4,5]
b = [0, 0, 1, 3]
a[b]
a[b,c] # matrix도 가능

data i/o

a = np.loadtxt(" ") # 파일 load
a.astype(int) # int 변환





[부스트캠프 AI Tech] Week 1 - Day 3

0개의 댓글