NumPy의 요소 별 곱셈

Muhammad Waiz Khan 2023년1월30일
  1. np.multiply()메서드를 사용하여 Python에서 행렬의 요소 별 곱셈
  2. *연산자를 사용하여 Python에서 행렬의 요소 별 곱셈
NumPy의 요소 별 곱셈

이 튜토리얼은 Python에서 요소 별 행렬 곱셈을 수행하는 다양한 방법을 설명합니다. 요소 별 행렬 곱셈 (Hadamard Product라고도 함)에서는 첫 번째 행렬의 모든 요소에 두 번째 행렬의 해당 요소를 곱합니다.

요소 별 행렬 곱셈을 수행 할 때 두 행렬은 모두 동일한 차원이어야합니다. 요소 별 행렬 곱셈a*b = c의 결과 행렬c는 항상ab와 동일한 차원을 갖습니다.

다음 방법을 사용하여 Python에서 요소 별 곱셈을 수행 할 수 있습니다.

np.multiply()메서드를 사용하여 Python에서 행렬의 요소 별 곱셈

Python NumPy라이브러리의np.multiply(x1, x2)메소드는 두 개의 행렬x1x2를 입력으로 취하고 입력에 대해 요소 별 곱셈을 수행하고 결과 행렬을 입력으로 반환합니다.

따라서 요소 별 입력을 수행하려면 두 행렬을np.multiply()메서드에 대한 입력으로 전달해야합니다. 아래 예제 코드는np.multiply()를 사용하여 Python에서 두 행렬의 요소 별 곱셈을 수행하는 방법을 보여줍니다.

import numpy as np

a1 = np.array([[12, 46, 23, 7, 2], [3, 5, 8, 3, 6]])
a2 = np.array([[15, 26, 2, 17, 22], [13, 8, 9, 3, 4]])

print(np.multiply(a1, a2))

출력:

[[ 180 1196   46  119   44]
 [  39   40   72    9   24]]

또한np.multiply()메서드를 사용하여 행렬의 특정 행, 열 또는 부분 행렬의 요소 별 곱셈을 수행 할 수 있습니다. 행렬의 특정 행, 열 또는 부분 행렬을np.multiply()메서드에 전달해야합니다. 요소 별 행렬 곱셈과 마찬가지로 곱셈을 위해 첫 번째 및 두 번째 피연산자로 전달되는 행, 열 또는 부분 행렬의 크기도 동일해야합니다.

아래 예제 코드는 Python에서 두 행렬의 행, 열 또는 부분 행렬의 요소 별 곱셈을 구현하는 방법을 보여줍니다.

import numpy as np

a1 = np.array([[12, 46, 23, 7, 2], [3, 5, 8, 3, 6]])
a2 = np.array([[15, 26, 2, 17, 22], [13, 8, 9, 3, 4]])

print(np.multiply(a1[0, :], a2[1, :]))
print(np.multiply(a1[1, :], a2[0, :]))
print(np.multiply(a1[:, 3], a2[:, 1]))

출력:

[156 368 207  21   8]
[ 45 130  16  51 132]
[182  24]

*연산자를 사용하여 Python에서 행렬의 요소 별 곱셈

행렬과 함께*연산자를 사용하여 요소 별 행렬 곱셈을 수행 할 수도 있습니다. *연산자는 Python에서 행렬과 함께 사용될 때 요소 별 행렬 곱셈의 결과 행렬을 반환합니다.

아래 예제 코드는*연산자를 사용하여 Python에서 요소 별 행렬 곱셈을 수행하는 방법을 보여줍니다.

a1 = np.array([[12, 46, 23, 7, 2], [3, 5, 8, 3, 6]])
a2 = np.array([[15, 26, 2, 17, 22], [13, 8, 9, 3, 4]])

print(a1 * a2)

출력:

[[ 180 1196   46  119   44]
 [  39   40   72    9   24]]

또한*연산자를 사용하여 Python에서 다음과 같은 방식으로 행렬의 행, 열 및 부분 행렬의 요소 별 곱셈을 수행 할 수 있습니다.

import numpy as np

a1 = np.array([[12, 46, 23, 7, 2], [3, 5, 8, 3, 6]])
a2 = np.array([[15, 26, 2, 17, 22], [13, 8, 9, 3, 4]])

print(a1[0, :] * a2[1, :])
print(a1[1, :] * a2[0, :])
print(a1[:, 3] * a2[:, 1])

출력:

[156 368 207  21   8]
[ 45 130  16  51 132]
[182  24]

관련 문장 - NumPy Matrix