Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのアインシュタインの縮約記法を使用したベクトル内積


アインシュタインの縮約記法を使用してベクトルの内積を計算するには、Pythonでnumpy.einsum()メソッドを使用します。最初のパラメーターは添え字です。これは、添え字ラベルの合計ascomma区切りリストの添え字を指定します。 2番目のパラメーターはオペランドです。これらは操作用の配列です。

einsum()メソッドは、オペランドのアインシュタインの縮約記法を評価します。アインシュタインの縮約記法を使用すると、多くの一般的な多次元線形代数配列演算を簡単な方法で表すことができます。暗黙モードでは、einsumはこれらの値を計算します。

明示的モードでは、einsumは、指定された添え字ラベルに対して合計を無効にするか、強制することにより、従来のEinstein合計操作とは見なされない可能性のある他の配列操作を計算するためのさらなる柔軟性を提供します。

ステップ

まず、必要なライブラリをインポートします-

import numpy as np

arange()およびreshape()メソッドを使用してnumpy配列を作成する-

arr = np.arange(4)

配列を表示する-

print("Our Array...\n",arr)

寸法を確認してください-

print("\nDimensions of our Array...\n",arr.ndim)

データ型を取得-

print("\nDatatype of our Array object...\n",arr.dtype)

形をとる-

print("\nShape of our Array object...\n",arr.shape)

アインシュタインの縮約記法を使用してベクトルの内積を計算するには、numpy.einsum()メソッド-

を使用します。
print("\nResult (inner product)...\n",np.einsum('i,i', arr, arr))

import numpy as np

# Creating a numpy array using the arange() and reshape() method
arr = np.arange(4)

# Display the array
print("Our Array...\n",arr)

# Check the Dimensions
print("\nDimensions of our Array...\n",arr.ndim)

# Get the Datatype
print("\nDatatype of our Array object...\n",arr.dtype)

# Get the Shape
print("\nShape of our Array object...\n",arr.shape)

# To compute inner product of vectors with Einstein summation convention, use the numpy.einsum() method in Python.
print("\nResult (inner product)...\n",np.einsum('i,i', arr, arr))

出力

Our Array...
[0 1 2 3]

Dimensions of our Array...
1

Datatype of our Array object...
int64

Shape of our Array object...
(4,)

Result (inner product)...
14

  1. Pythonで配列とスカラーの内積を取得します

    配列とスカラーの内積を取得するには、Pythonでnumpy.inner()メソッドを使用します。 1次元配列のベクトルの通常の内積。高次元では、最後の軸の合計積。パラメータは1とb、2つのベクトルです。 aとbが非スカラーの場合、それらの最後の寸法は一致する必要があります。 ステップ まず、必要なライブラリをインポートします- import numpy as np numpy.eye()を使用して配列を作成します。このメソッドは、対角線上に1があり、他の場所に0がある2次元配列を返します- arr = np.eye(5) valはスカラーです- val = 2 データ型を確認してくだ

  2. 指定された製品のサブ配列がPythonの配列に存在するかどうかを確認します

    numsという配列があり、これに正の数と負の数が含まれているとします。別の値kがあります。積がkであるサブ配列が配列に存在するかどうかを確認する必要があります。 したがって、入力がnums =[-2、-1,1,3,5,8]、k =6のような場合、サブ配列は[-2、-1,3] これを解決するには、次の手順に従います- 最小:=nums [0]、最大:=nums [0] prod_max:=nums [0] 範囲1からnums-1のサイズのiの場合、do nums [i] <0の場合、 最大値と最小値を入れ替える maximum:=最大nums [i]および(maximum