[Python.NumPy] 벡터/행렬 선언하기 및 벡터곱 연산하기
2020. 11. 30. 13:00ㆍPython과 머신러닝/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 함수를 통해 벡터/행렬 간의 곱하기 연산을 수행할 수 있다
'Python과 머신러닝 > NumPy 데이터 분석' 카테고리의 다른 글
[Python.NumPy] arange/zeros/empty 함수의 차이 - Creation Function I (0) | 2020.12.04 |
---|---|
[Python.NumPy] ndarray indexing과 slicing (0) | 2020.11.30 |
[Python.NumPy] ndarray.reshape - 크기 변환하기 (0) | 2020.11.30 |
[Python.NumPy] ndarray 이해하기 (0) | 2020.11.30 |
[Python.NumPy] Y값 모델링 및 모델 평가 방법론 (0) | 2020.11.30 |