[Python.NumPy] 벡터/행렬 선언하기 및 벡터곱 연산하기

2020. 11. 30. 13:00Python과 머신러닝/NumPy 데이터 분석

0. 요약

  • NumPy란 무엇인지 배우고, 왜 NumPy가 업계의 표준이 되었는지 이해한다.
  • NumPy를 통해 Vector/행렬 선언을 어떻게 하고, 곱 연산까지 하는 방법을 예제를 통해 알아보자.

 

1. NumPy란

  • Numerical Python의 약자이다.
  • 파이썬의 고성능 과학계산용 기초 패키지이다.
  • Matrix와 Vector와 같은 Array 연산의 표준으로 인정받는 패키지이다.
  • 이유는, 반복문 없이 데이터 배열에 대한 처리를 지원하기 때문에 일반 list에 비해 빠르고, 메모리 사용도 효율적이기 때문이다.
  • 선형대수와 관련된 다양한 기능도 제공하고,
  • C/C++/Fortran 등의 언어와 통합도 가능해서 사실상의 표준으로 자리매김하였다.

 

2. NumPy를 통한 Array 선언 및 Array 곱 계산 예제

import numpy as np # NumPy 라이브러리 호출

weight_vector = np.array([[1],[1],[1]]) # 3x1 Weight vector 선언
x_vector = np.array([[3],[4],[5]]) # 3x1 x vector 선언

weight_vector.T.dot(x_vector) # weight vector를 transpose하여 (결과물 1x3)
                              # x_vector와 곱한다 (dot product) => 결과물은 1x1
  • NumPy를 통해 array/vector는 어떻게 선언하고, 벡터 곱은 어떻게 계산할지 예제를 통해 알아보자.
  • 우선 numpy 라이브러리를 np로 import 한다 (전 세계적으로 np라고 사용한다. 다른 이름을 사용해도 되지만, 남이 짠 코드를 볼 땐 대부분 np라고 되어있을 것이라는 점만 유의하면 된다)
  • np.array 함수를 사용하여 weight vector를 3x1의 형태로 선언해준다. 
  • weight vector와 벡터곱 연산을 수행할 x_vector를 동일하게 np.array함수로 선언해준다.
  • Vector/Matrix에 대한 기본을 아는 분이라면 이해하겠지만 3x1 vector를 3x1 vector에 곱할 순 없다.
  • 그래서 weight vector를 1x3으로 Transpose를 해줘야 하는데, 이게 .T 연산이다.
    • weight_vector.T ==> np.array([1,1,1]) 과 동일해진다.
  • 이 상태에서 .dot 함수를 통해 x_vector와의 벡터 곱을 계산한다.
    • 연산 결과는 3*1 + 4*1 + 5*1로 [12]가 나온다.

 

마무리

  • NumPy는 파이썬의 고성능 과학계산용 기초 패키지이다.
  • 반복문이 없어서 효율적이고, 메모리 효율도 뛰어나 업계 표준처럼 사용된다.
  • np.array 함수를 통해 vector/matrix를 선언한다.
  • .T 연산으로 Transpose할 수 있고
  • .dot 함수를 통해 벡터/행렬 간의 곱하기 연산을 수행할 수 있다