logo

Pythonのnumpy.dot()

Python の numpy モジュールは、2 つの配列のドット積を実行する関数を提供します。

  • 配列 'a' と 'b' が両方とも 1 次元配列の場合、dot() 関数はベクトルの内積を (複素共役なしで) 実行します。
  • 配列 'a' と 'b' が両方とも 2 次元配列の場合、dot() 関数は行列の乗算を実行します。ただし、行列乗算の場合は、 マット または 'a' @ 'b' が好ましいです。
  • 「a」または「b」のいずれかが 0 次元 (スカラー) の場合、dot() 関数は乗算を実行します。また、 numpy.multiply(a, b) または a*b 方法が好ましいです。
  • 「a」が N 次元配列で、「b」が 1 次元配列の場合、dot() 関数は a と b の最後の軸に対して積和を実行します。
  • 「a」が M 次元配列で、「b」が N 次元配列 (N>=2) の場合、dot() 関数は「a」の最後の軸と 2 番目の軸の積和を実行します。 -「b」の最後までの軸:
 dot(a, b)[i,j,k,n] = sum(a[i,j,:] * b[k,:,n]) 

構文

 numpy.dot(a, b, out=None) 

パラメーター

a: 配列のようなもの

このパラメータは最初の配列を定義します。

b: 配列のようなもの

xdxdとはどういう意味ですか

このパラメータは 2 番目の配列を定義します。

出力: ndarray(オプション)

これは出力引数です。使用されなかった場合に返される正確な種類が必要です。特に、パフォーマンス機能を満たす必要があります。つまり、正しい型が含まれている必要があります。つまり、C 連続である必要があり、その dtype が dot(a,b) に対して返される dtype である必要があります。したがって、これらの指定された条件を満たさない場合は、例外が発生します。

スクリプトを実行可能にする

戻り値

この関数は、「a」と「b」のドット積を返します。この関数は、「a」と「b」が両方ともスカラーまたは 1 次元の場合、スカラーを返します。それ以外の場合は配列を返します。 「out」が指定された場合は、それが返されます。

レイズ

値エラー この問題は、「a」の最後の次元が「b」の最後から 2 番目の次元と同じサイズではない場合に発生します。

例 1:

 import numpy as np a=np.dot(6,12) a 

出力:

 72 

例 2:

 import numpy as np a=np.dot([2j, 3j], [5j, 8j]) a 

出力:

 (-34+0j) 

例 3:

 import numpy as np a = [[1, 2], [4, 1]] b = [[4, 11], [2, 3]] c=np.dot(a, b) c 

出力:

int を文字列 Java に変換します
 array([[ 8, 17], [18, 47]]) 

上記のコードでは

  • numpy をエイリアス名 np でインポートしました。
  • 2 つの 2 次元配列を作成しました。 ある ' そして ' b '。
  • 変数 ' を宣言しました。 c ' と戻り値を割り当てました。 np.dot() 関数。
  • 最後に、「」の値を出力しようとしました。 c '。

出力では、行列積が配列として表示されます。

例 4:

 import numpy as np x = np.arange(3*4*5*6).reshape((3,4,5,6)) y = np.arange(3*4*5*6)[::-1].reshape((5,4,6,3)) p=np.dot(a, b)[2,3,2,1,2,2] q=sum(a[2,3,2,:] * b[1,2,:,2]) p q 

出力:

 499128 499128 

上記のコードでは

Javaデータベースjdbc
  • numpy をエイリアス名 np でインポートしました。
  • 2 つの配列を作成しました。 ある ' そして ' b ' を使用して np.arange() 関数を使用し、 reshape() 関数を使用して両方の配列の形状を変更します。
  • 変数 ' を宣言しました。 c ' と戻り値を割り当てました。 np.dot() 関数
  • 最後に、「」を出力してみました。 c ' 価値。

出力では、行列積が配列として表示されます。