kwan's note

Numpy(넘파이) 기본연산 활용하기 본문

ML and AI/Python for ML

Numpy(넘파이) 기본연산 활용하기

kwan's note 2021. 1. 10. 16:58
반응형

출처: 부스트코스-머신러닝을 위한 파이썬

수강일시:2021.01.10

 

이번 강의에서는 파이썬의 과학 계산용 패키지인 numpy 의 여러 특징과 기능, 코드를 작성하는 방법 등을 배웁니다.

 

numpy는 numerical python으로 - 파이썬의 고성능 과학 계산용 패키지이다 - Matrix와 Vector와 같은 Array 연산의 사실상의 표준 - 한글로 넘파이로 주로 통칭, 일부는 넘피/늄파이라고 부르기도 한다.

 

numpy를 사용하는 이유는 여러가지가 있지만 대표적으로 ndarray의 효율성 이 있다.

ndarray는 python의 list와 다르게 빠르고 메모리효율적이다.

python의 list는 datatype을 정하지 않고 사용시에 결정한다. 또한 내부 데이터 접근시 주소로 접근하기 때문에 시간이 오래걸린다. 또한 앞서 assignment에서 연습한것과 같이 반복문을 이용해 배열계산을 하는것이 복잡하고 비효율적이다.

ndarray를 이용하면 c ,cpp과같이 array를 사용하면서도 python의 장점을 활용할 수 있다.

reminder-by-kwan.tistory.com/41

 

Assignment - Basic Linear Algebra

출처: 부스트코스-머신러닝을 위한 파이썬 수강일시:2021.01.09 이번 강의에서는 간단한 선형대수의 수식들을 python code로 작성하는 것을 목적으로 진행됩니다. 문제와 풀이로 나누어서 작성하였습

reminder-by-kwan.tistory.com

 

numpy array는 c, cpp처럼 배열을 저장한다. 따라서 빠르고 메모리효율적이다.

(다만 데이터의 타입을 미리 선언해주어야함)

 

Array는 차원을 늘리는 방식으로 벡터, 행렬, 텐서를 표현할 수 있다.

ndim- 차원의 갯수

size- data의 갯수

 

ex1) np.array(matrixA,int).ndim

ex2) np.array(matrixA,int).size

 

shape을 이용하여 차원을 변형시킬 수 있다.

reshape(-1,2)처럼 -1을 이용한다면 자동설정( 하나의 row 또는 column을 기준으로 나머지가 설정)된다.

 

 

list와 마찬가지로 indexing과 slicing을 사용할 수 있는데 활용 방식이 좀 더 다양하다.

arange-array의 범위를 지정하여 array를생겅한다.

python 의 기본 range와 다르게 floating point로도 표시가 가능하다.

ex) np.arange(0,5,0.1)

 

ones, zeros - 1또는 0으로 가득찬 array 생성

 

ones_like , zeros_like는 기존 배열의 shape과 동일한 ones , zeros array 생성

 

identity: n by n idenetity matrix

ete : n by m identity matrix

 

ndarray의 축

 

이외에도 다양한 수학적 계산들을 제공한다.

ex) mean , std, exp, log, sin, cos, atctanh ,,,

 

concatenate

numpy array를 합칠때 hsatack  vstack을 사용할 수 있다.

 

numpy array는 기본적인 사칙연산을 제공한다.

단 크기가 같을때 기본사칙연산(+ - * /)는 행렬의 같은 위치 성분끼리 사칙연산한다.

따라서 dot product는 A.dot(B)를 사용해야 한다.

ex) matrixA.dot(matrixB)

 

역행렬은 .transpose() 또는 .T 를 사용한다.

 

shape이 다른 배열간에도 연산을 제공하는데

이를 broadcasting이라고 한다.

broadcasting 연산은 연산 방식을 알아두지 않으면 헷갈릴 수 있다.

 

numpy의 비교함수들

 

all 과 any를 사용하여 boolean 값을 얻을 수 있다.

all : 모두 참이면 true. 이외는 false

any: 하나만 참이면 true. 모두 거짓이면 false

 

배열의 크기가 동일할 때 > == < 를 이용하여 모든 element에 대한 대소관계를 얻을 수 있다.

 

또한 index를 얻고 싶을때 where를 사용하여 조건에 해당하는 index를 얻을 수 있고

argmin argmax를 이용하여 min max의 index를 얻을 수 있다.

 

 

이로써 numpy의 자주사용하는 일부 연산들에대해 배워보았다.

반응형