NumPy での要素ごとの乗算

Muhammad Waiz Khan 2023年1月30日
  1. Python で np.multiply() メソッドを使用したの行列の要素ごとの乗算
  2. Python で*演算子を使用したの行列の要素ごとの乗算
NumPy での要素ごとの乗算

このチュートリアルでは、Python で要素ごとの行列乗算を実行するためのさまざまな方法について説明します。要素ごとの行列乗算(アダマール積とも呼ばれます)では、最初の行列のすべての要素に、2 番目の行列の対応する要素が乗算されます。

要素ごとの行列乗算を実行する場合、両方の行列は同じ次元である必要があります。要素ごとの行列乗算 a*b = c の結果の行列 c は、常に a および b の次元と同じ次元になります。

次の方法を使用して、Python で要素ごとの乗算を実行できます。

Python で np.multiply() メソッドを使用したの行列の要素ごとの乗算

Python の NumPy ライブラリの np.multiply(x1, x2) メソッドは、入力として 2つの行列 x1x2 を取り、入力に対して要素ごとの乗算を実行し、結果の行列を入力として返します。

したがって、要素ごとの入力を実行するには、2つの行列を np.multiply() メソッドへの入力として渡す必要があります。以下のサンプルコードは、np.multiply() を使用して Python で 2つの行列の要素ごとの乗算を実行する方法を示しています。

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() メソッドに渡す必要があります。要素ごとの行列乗算と同様に、乗算の第 1 オペランドと第 2 オペランドとして渡される行、列、または部分行列のサイズも同じである必要があります。

以下のサンプルコードは、Python で 2つの行列の行、列、または部分行列の要素ごとの乗算を実装する方法を示しています。

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