본문 바로가기
AI/Machine-Learning

[NumPy] matmul(), dot()

by Wikinist 2023. 8. 28.

NumPy는 파이썬에서 수치 연산을 위한 핵심 라이브러리로 매트릭스 연산과 관련된 함수들을 제공합니다. matmul과 dot 함수는 둘 다 배열(행렬)의 곱셈 연산을 수행하는 함수입니다.

np.matmul() 함수

np.matmul(a, b) 함수는 두 배열 a와 b의 행렬 곱셈을 수행합니다. 행렬 곱셈의 규칙에 따라 앞의 행렬의 열과 뒤의 행렬의 행을 일치시켜야 합니다.

import numpy as np

A = np.array([[1, 2],
              [3, 4]])
B = np.array([[5, 6],
              [7, 8]])

result = np.matmul(A, B)
print(result)

출력

[[19 22]
 [43 50]]


np.matmul() 함수는 행렬 곱셈 규칙에 따라 연산을 수행하며, 다차원 배열의 경우에도 브로드캐스팅 규칙을 적용합니다.

np.dot() 함수

np.dot(a, b) 함수는 두 배열 a와 b 사이의 점곱(dot product) 또는 내적(inner product)을 계산합니다. 이 함수는 다차원 배열에도 적용할 수 있지만, 행렬 곱셈 규칙과는 조금 다른 계산 방식을 사용합니다.

import numpy as np

A = np.array([1, 2])
B = np.array([3, 4])

result = np.dot(A, B)
print(result)

출력:

11


행렬의 경우, np.dot() 함수는 np.matmul()과 동일한 결과를 생성하지만, 벡터의 경우에는 각 요소별로 곱한 후 합산하여 결과를 도출합니다.

일반적으로 행렬 곱셈을 수행하려면 np.matmul() 함수를 사용하는 것이 더 명확하고 의미적으로도 적합합니다. np.dot() 함수는 다양한 문맥에서 사용되며, 벡터의 내적 또는 행렬 곱셈과 같은 다양한 연산에 활용될 수 있습니다.

해당 게시글은 ChatGPT의 도움을 받아 작성되었습니다.

'AI > Machine-Learning' 카테고리의 다른 글

RobustScaler  (0) 2023.08.29
다중 선형 회귀와 절차  (0) 2023.08.29
결정계수 (Coefficient of Determination)  (0) 2023.08.28
[Scikit-learn] LinearRegression, SGDRegressor  (0) 2023.08.28
Numpy rand(), randn()  (0) 2023.08.28