Pythonで2つの多次元ベクトルの内積を返す方法(numpy.vdotの使い方)
Pythonで2つの多次元ベクトルの内積を求めるには、numpy.vdot()メソッドを使用します。
vdot(a, b)関数は、dot(a, b)と比べて複素数の扱い方が異なります。第1引数が複素数の場合、内積の計算時にその複素共役が使われます。また、vdotは多次元配列もdotとは異なる方法で処理します。行列積を計算するのではなく、まず入力された引数を1次元ベクトルへ平坦化(フラット化)してから内積を求めます。そのため、この関数はベクトル専用として使用すべき点に注意しましょう。
戻り値はaとbの内積であり、aとbの型に応じてint型、float型、complex型のいずれかになります。第1パラメータはaで、aが複素数の場合は内積の計算前に複素共役が取られます。第2パラメータのbは、内積を計算するもう一方の配列です。
手順
まず、必要なライブラリをインポートします。
import numpy as np
array()メソッドを使って、2つのNumPy多次元配列を作成します。
arr1 = np.array([[5, 10],[15, 20]]) arr2 = np.array([[3, 6],[9, 12]])
作成した配列を表示します。
print("Array1...\n",arr1)
print("\nArray2...\n",arr2)両方の配列の次元数を確認します。
print("\nDimensions of Array1...\n",arr1.ndim)
print("\nDimensions of Array2...\n",arr2.ndim)両方の配列の形状(シェイプ)を確認します。
print("\nShape of Array1...\n",arr1.shape)
print("\nShape of Array2...\n",arr2.shape)2つの多次元ベクトルの内積を返すには、Pythonのnumpy.vdot()メソッドを使用します。
print("\nResult...\n",np.vdot(arr1, arr2))
サンプルコード
import numpy as np
# array()メソッドを使って2つのNumPy多次元配列を作成
arr1 = np.array([[5, 10],[15, 20]])
arr2 = np.array([[3, 6],[9, 12]])
# 配列を表示
print("Array1...\n",arr1)
print("\nArray2...\n",arr2)
# 両方の配列の次元数を確認
print("\nDimensions of Array1...\n",arr1.ndim)
print("\nDimensions of Array2...\n",arr2.ndim)
# 両方の配列の形状を確認
print("\nShape of Array1...\n",arr1.shape)
print("\nShape of Array2...\n",arr2.shape)
# numpy.vdot()メソッドで2つの多次元ベクトルの内積を計算
print("\nResult...\n",np.vdot(arr1, arr2))出力結果
Array1... [[ 5 10] [15 20]] Array2... [[ 3 6] [ 9 12]] Dimensions of Array1... 2 Dimensions of Array2... 2 Shape of Array1... (2, 2) Shape of Array2... (2, 2) Result... 450
-
Python NumPyで2つのベクトルの外積を計算する方法
2つのベクトルの外積(クロス積)を計算するには、PythonのNumPyライブラリが提供する numpy.cross() メソッドを使用します。このメソッドは、指定された2つのベクトルの外積 c を返します。numpy.cross() メソッドの主な引数a:第1引数。最初のベクトルの成分です。b:第2引数。2番目のベクトルの成分です。axisa:第3引数。ベクトルを定義する a の軸を指定します。デフォルトは最後の軸です。axisb:第4引数。ベクトルを定義する b の軸を指定します。デフォルトは最後の軸です。axisc:第5引数。外積ベクトルを格納する c の軸を指定します。入力ベクトルがど
-
Pythonで2つのスパースベクトルの内積を計算するプログラム
問題の概要ここでは、2つのリストで表現されたスパースベクトル(疎なベクトル)が与えられ、その内積(ドット積)を求めることを考えます。ベクトルはオブジェクトとして表現され、各要素のリストはオブジェクトのメンバー変数 nums に格納されています。例えば、入力が以下のような場合を考えてみましょう。vector1 = [1, 0, 0, 0, 1]vector2 = [0, 0, 0, 1, 1]このときの出力は 1 になります。内積の計算は次のとおりです。1 × 0 + 0 × 0 + 0 × 0 + 0 × 1 + 1 × 1 = 1解決のための手順この問題を解くには、以下の手順に従います。結果