본문 바로가기
네이버 부스트캠프 AI Tech/Deep Learning Basics

[부스트캠프 AI Tech] numpy

by 중앙백 2022. 1. 20.
  • 어떻게 행렬을 표현할 것인가?

 - 리스트 활용

matrix = [[2, 2, 1], [2, 3, 1], [4, 2, 1]]
vector = [8, 6 ,3]

 - 단점: 처리 속도 문제, 메모리를 많이 차지함.

 - 적절한 패키지를 활용하자. → numpy

 

numpy(Numerical Python)

 - 파이썬의 고성능 과학 계산용 패키지

 - Matrix와 Vector 같은 Arrray 연산의 표준

 - 일반 리스트에 비해 빠르고 메모리 효율적

 - 반복문 없이 데이터 배열에 대한 처리를 지원함.

 - 가상환경에서 install numpy 

 - import numpy as np (세계적인 약속)

 

ndarray
  • np.array 함수를 활용해 배열을 생성 → ndarray 객체
  • numpy에는 하나의 데이터 type만 배열에 넣을 수 있다. dynamic typing not supported

출처 : http://jakevdp.github.io/blog/2014/05/09/why-python-is-slow/

  • 위 그림처럼 Numpy는 차례대로 값이 들어가서 연산이 매우 용이함.
  • shape : numpy array의 dimension 구성을 반환
  • dtype : numpy a rray의 데이터 type을 반환
  • ndim : number of dimensions
  • size : data 개수
  • nbytes : ndarray object의 메모리 크기를 반환

 

Handling Shape
  • reshape : Array의 크기를 변경함. element 개수는 동일
  • flatten : 다차원 array를 1차원 array로 변환

 

indexing
  • list와 달리 [0, 0] 표기법을 제공
  • matrix의 경우 앞이 row 뒤가 column을 뜻함

 

slicing
  • list와 달리 행과 열 부분을 나눠서 slicing이 가능함
  • matrix의 부분 집합을 추출할 때 유용

출처 : 부스트캠프 AI Tech

 

creation function
  • arange : array의 범위를 지정하여 값의 list를 생성. range와 유사하지만 step을 소수점까지 표시가능하다는 장점
  • zeros : 0으로 가득찬 ndarray 생성
  • ones : 1로 가득찬 ndarray 생성
  • empty : shape만 주어지고 비어있는 ndarray 생성. memory initialization이 되지 않음.
  • something_like(ones_like etc) : 기존 ndarray의 shape 크기 만큼 1, 0 또는 empty array를 반환
  • identity : 단위행령 생성
  • eye(a,b,k) : 대각선이 1인 a*b행렬. c값으로 1 시작 위치 결정 가능.
  • diag : 대각 행렬의 값을 추출함.
  • random sampling : 데이터 분포에 따른 sampling으로 array를 생성.

 

operation function
  • sum, mean, std, var
  • axis : operation function을 실행할 때 기준이 되는 dimension 축. 매번 새롭게 생성되는 축이 axis=0

출처 : 부스트캠프 AI Tech

  • concatenate : numpy array를 합치는(붙이는) 함수
    vstack : vertical stack
    hstack : horizontal stack
    concatenate : 축 방향에 따라 붙이기.

출처 : 부스트캠프 Ai Tech

 

array operation
  • +, -, * : element-wise operation. array간 shape이 같을 때 연산 발생.
  • 행렬의 곱셈 : 연산자 @를 사용
  • 행렬의 내적 : inner 함수 사용
  • Dot product : dot 함수 사용
  • transpose : .transpose() 또는 .T 사용.
  • broadcasting : shape이 다른 배열 간 연산을 지원하는 기능.(scalar-vector, vector-matrix 등등)

 

comparisons
  • All & Any : Array의 데이터 전부(and) 또는 일부(or)가 조건 만족하는지 반환
  • numpy는 배열의 크기가 동일할 때 element간 비교 결과를 Boolean type으로 반환
  • np.where
  • argmax, argmin : array내 최대값 또는 최소값의 index를 반환함

 

boolean & fancy index
  • boolean index : 특정 조건에 따른 값을 배열 형태로 추출.
  • fancy index : array를 index value로 사용해서 값 추출

 

numpy data i/o
  • text type의 데이터를 읽고 저장하는 기능
  • loadtxt, savetxt 등 사용

댓글