Pythonで2つのベクトルの内積を返す
2つのベクトルの内積を返すには、Pythonでnumpy.vdot()メソッドを使用します。 vdot(a、b)関数は、dot(a、b)とは異なる方法で複素数を処理します。最初の引数が複素数の場合、最初の引数の複素共役が内積の計算に使用されます。 vdotは、ドットとは異なる方法で多次元配列を処理します。行列積を実行しませんが、最初に1次元ベクトルへの入力引数をフラット化します。したがって、ベクターにのみ使用する必要があります。
このメソッドは、aとbの内積を返します。 aとbのタイプに応じて、int、float、またはcomplexにすることができます。最初のパラメータはです。 aが複素数の場合、内積を計算する前に複素共役が取られます。 bは内積の2番目のパラメーターです。
ステップ
まず、必要なライブラリをインポートします-
import numpy as np
array()メソッドを使用して2つのnumpy1次元配列を作成する-
arr1 = np.array([2+3j,5+6j]) arr2 = np.array([9+10j,11+12j])
配列を表示する-
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 # Creating two numpy One-Dimensional array using the array() method arr1 = np.array([2+3j,5+6j]) arr2 = np.array([9+10j,11+12j]) # Display the arrays print("Array1...\n",arr1) print("\nArray2...\n",arr2) # Check the Dimensions of both the arrays print("\nDimensions of Array1...\n",arr1.ndim) print("\nDimensions of Array2...\n",arr2.ndim) # Check the Shape of both the arrays print("\nShape of Array1...\n",arr1.shape) print("\nShape of Array2...\n",arr2.shape) # To return the dot product of two vectors, use the numpy.vdot() method in Python. print("\nResult...\n",np.vdot(arr1, arr2))
出力
Array1... [2.+3.j 5.+6.j] Array2... [ 9.+10.j 11.+12.j] Dimensions of Array1... 1 Dimensions of Array2... 1 Shape of Array1... (2,) Shape of Array2... (2,) Result... (175-13j)
-
Pythonで2つのスパースベクトルの内積を見つけるプログラム
2つのリストで表される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。 これを解決するには、次の手順に従います- res:=0 インデックスiごとに、vector2の数の値vを実行します vが0と同じ場合、
-
パターン「G」を印刷するPythonプログラム
「*」を使用して文字「G」のパターンを印刷する必要がある場合は、メソッドを定義し、ネストされたループを使用して数値を反復処理し、「*」を印刷して「G」パターンを形成できます。 以下は同じのデモンストレーションです- 例 def display_pattern(my_line): my_pattern="" for i in range(0,my_line): for j in range(0,my_line):