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

Pythonのアインシュタインの縮約記法を使用して行列の対角線を抽出します


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

明示的モードでは、einsumは、指定された添え字ラベルに対して合計を無効にするか、強制することにより、従来のEinstein合計操作とは見なされない可能性のある他の配列操作を計算するためのさらなる柔軟性を提供します。アインシュタインの縮約記法を使用して行列の対角線を抽出するには、Pythonでnumpy.einsum()メソッドを使用します。

最初のパラメーターは添え字です。合計の添え字を、添え字ラベルのコンマ区切りリストとして指定します。 2番目のパラメーターはオペランドです。これらは操作の配列です。

ステップ

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

import numpy as np

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

arr = np.arange(16).reshape(4,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...\n",np.einsum('ii->i', arr))

import numpy as np

# Creating a numpy array using the arange() and reshape() method
arr = np.arange(16).reshape(4,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 extract the diagonal of a matrix with Einstein summation convention, use the numpy.einsum() method in Python.
print("\nResult...\n",np.einsum('ii->i', arr))

出力

Our Array...
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]

Dimensions of our Array...
2

Datatype of our Array object...
int64

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

Result...
[ 0 5 10 15]

  1. Pythonで行列の逆数を計算する

    行列の(乗法)逆数を計算するには、Pythonでnumpy.linalg.inv()メソッドを使用します。正方行列aが与えられた場合、行列 ainvを返します。 dot(a、ainv)=dot(ainv、a)=eye(a.shape [0])を満たす。このメソッドは、行列aの(乗法)逆行列を返します。最初のパラメーターaは、反転される行列です。 ステップ まず、必要なライブラリをインポートします- import numpy as np from numpy.linalg import invをインポートします 配列を作成する- arr = np.array([[ 5, 10], [ 15,

  2. Pythonの線形代数で行列またはベクトルのノルムを返す

    線形代数で行列またはベクトルのノルムを返すには、Python NumpyのLA.norm()メソッドを使用します。最初のパラメーターxは入力配列です。軸がNoneの場合、ordがNoneでない限り、xは1-Dまたは2-Dである必要があります。 axisとordの両方がNoneの場合、x.ravelの2ノルムが返されます。 2番目のパラメーターordは、ノルムの次数です。 infは、numpyのinfオブジェクトを意味します。デフォルトはNoneです。 3番目のパラメーター軸は、整数の場合、ベクトルノルムを計算するためのxの軸を指定します。 axisが2タプルの場合、2次元行列を保持する軸を指