zenn.skin 무료버전 배포중!
자세히보기

Math/Linear Algebra

numpy - dot, 행렬의 곱셈

koosco! 2020. 7. 1. 01:15

이전에 c++를 사용해 행렬곱을 구현한 적이 있었다.

파이썬에서는 numpy 라이브러리를 이용하면 간단하게 행렬곱을 구할 수 있다.

 

- 다음과 같이 A와 B가 주어질 때,

 

행렬곱의 결과는 다음과 같다

 

1. numpy.matmul

import numpy as np

A=[[2,4,-1],[-1,3,3],[4,-2,1],[-3,0,2]]

B=[[4,-2],[-2,1],[3,-1]]

result=np.matmul(A,B)

print(result)

matmul 함수에 행렬 A와 B를 넣으면 행렬곱을 구할 수 있다.

하지만 행렬에 스칼라곱을 하면 에러가 발생한다.

import numpy as np

 

A=[[2,4,-1],[-1,3,3],[4,-2,1],[-3,0,2]]

B=3

result=np.matmul(A,B)

print(result)

 

2. numpy.dot

import numpy as np

from numpy import dot

 

A=[[2,4,-1],[-1,3,3],[4,-2,1],[-3,0,2]]

B=[[4,-2],[-2,1],[3,-1]]

result=dot(A,B)

print(result)

import numpy as np

 

A=[[2,4,-1],[-1,3,3],[4,-2,1],[-3,0,2]]

B=3

result=np.dot(A,B)

print(result)

-dot함수를 이용하면, 두 행렬을 입력하면 행렬곱을, 행렬과 스칼라를 입력하면 스칼라곱을 반환한다.

 

 

<numpy.org에서 dot함수에 대한 설명을 볼 수 있다>

 

 

※numpy의 dot함수는

1. 1차원 배열 2개를 매개변수로 받으면 두 벡터의 내적을 반환

2. 2차원 배열 2개를 매개변수로 받으면 두 행렬의 행렬곱을 반환

3. 둘 중 하나가 0차원 배열(스칼라)이면 스칼라곱을 반환

4. 두 번째 매개변수가 1차원 배열이면 열벡터로 계산한다

'Math > Linear Algebra' 카테고리의 다른 글

행렬의 고유값/고유벡터  (0) 2020.07.05
행 사다리꼴, 기약 행 사다리꼴  (0) 2020.07.01
가우스-조단 소거법  (1) 2020.07.01
선형대수 개요  (0) 2020.05.07
행렬의 곱셈  (0) 2020.04.21

'Math/Linear Algebra'의 다른글

  • 현재글 numpy - dot, 행렬의 곱셈

관련글