Pythonのnumpy.dot()
numpy.dot(vector_a, Vector_b, out = None) は、ベクトル a と b の内積を返します。 2D 配列を処理できますが、それらを行列と見なし、行列の乗算を実行します。 N 次元の場合、 a の最後の軸と b の最後から 2 番目の軸の和積になります。
dot(a, b)[i,j,k,m] = sum(a[i,j,:] * b[k,:,m])
パラメーター
- Vector_a : [array_like] a が複素数の場合、その複素共役がドット積の計算に使用されます。 Vector_b : [array_like] b が複素数の場合、その複素共役がドット積の計算に使用されます。 out : [配列、オプション] 出力引数は C 連続でなければならず、その dtype は dot(a,b) に対して返される dtype である必要があります。
ベクトル a と b の内積。 Vector_a と Vector_b が 1D の場合、スカラーが返されます。
コード 1:
パイソン
# Python Program illustrating> # numpy.dot() method> import> numpy as geek> # Scalars> product> => geek.dot(> 5> ,> 4> )> print> (> 'Dot Product of scalar values : '> , product)> # 1D array> vector_a> => 2> +> 3j> vector_b> => 4> +> 5j> product> => geek.dot(vector_a, vector_b)> print> (> 'Dot Product : '> , product)> |
出力:
Dot Product of scalar values : 20 Dot Product : (-7+22j)
How Code1 works ? vector_a = 2 + 3j vector_b = 4 + 5j now dot product = 2(4 + 5j) + 3j(4 +5j) = 8 + 10j + 12j - 15 = -7 + 22j
コード 2:
パイソン
# Python Program illustrating> # numpy.dot() method> import> numpy as geek> # 1D array> vector_a> => geek.array([[> 1> ,> 4> ], [> 5> ,> 6> ]])> vector_b> => geek.array([[> 2> ,> 4> ], [> 5> ,> 2> ]])> product> => geek.dot(vector_a, vector_b)> print> (> 'Dot Product :
'> , product)> product> => geek.dot(vector_b, vector_a)> print> (> '
Dot Product :
'> , product)> '''> Code 2 : as normal matrix multiplication> '''> |
出力:
Dot Product : [[22 12] [40 32]] Dot Product : [[22 32] [15 32]]