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

Pythonの特定の軸上で異なる次元の配列のテンソル内積を計算します


2つのテンソルaとb、および2つのarray_likeオブジェクト(a_axes、b_axes)を含むarray_likeオブジェクトが与えられた場合、a_axesとb_axesで指定された軸上のaとbの要素(コンポーネント)の積を合計します。 3番目の引数は、単一の非負のinteger_likeスカラーNにすることができます。そのような場合、aの最後のN次元とbの最初のN次元が合計されます。

異なる次元の配列のテンソル内積を計算するには、Pythonのnumpy.tensordot()メソッドを使用します。 a、bパラメ​​ータは「ドット」へのテンソルです。

axisパラメーターinteger_likeintNの場合、aの最後のN軸とbの最初のN軸を順番に合計します。対応する軸のサイズは一致する必要があります。

ステップ

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

import numpy as np

array()メソッドを使用して次元の異なる2つのnumpy配列を作成する-

arr1 = np.array(range(1, 9))
arr1.shape = (2, 2, 2)

arr2 = np.array(('p', 'q', 'r', 's'), dtype=object)
arr2.shape = (2, 2)

配列を表示する-

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.tensordot()メソッド-

を使用します。
print("\nTensor dot product...\n", np.tensordot(arr1, arr2, axes = 1))

import numpy as np

# Creating two numpy arrays with different dimensions using the array() method
arr1 = np.array(range(1, 9))
arr1.shape = (2, 2, 2)
arr2 = np.array(('p', 'q', 'r', 's'), dtype=object)
arr2.shape = (2, 2)

# 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 compute the tensor dot product for arrays with different dimensions, use the numpy.tensordot() method in Python
# The a, b parameters are Tensors to “dot”.
print("\nTensor dot product...\n", np.tensordot(arr1, arr2, axes = 1))

出力

Array1...
[[[1 2]
[3 4]]

[[5 6]
[7 8]]]

Array2...
[['p' 'q']
['r' 's']]

Dimensions of Array1...
3

Dimensions of Array2...
2

Shape of Array1...
(2, 2, 2)

Shape of Array2...
(2, 2)

Tensor dot product...
[[['prr' 'qss']
['ppprrrr' 'qqqssss']]

[['ppppprrrrrr' 'qqqqqssssss']
['ppppppprrrrrrrr' 'qqqqqqqssssssss']]]

  1. Pythonで4Dおよび3D次元の配列のクロネッカー積を入手する

    4Dと3Dの次元配列のクロネッカー積を取得するには、Python Numpyのnumpy.kron()メソッドを使用します。最初の配列によってスケーリングされた2番目の配列のブロックで構成される複合配列であるクロネッカー積を計算します この関数は、aとbの次元数が同じであると想定し、必要に応じて最小の次元の前に1を追加します。 a.shape =(r0、r1、..、rN)およびb.shape =(s0、s1、...、sN)の場合、クロネッカー積は形状(r0 * s0、r1 * s1、...、 rN * SN)。要素は、aとbの要素の積であり、-によって明示的に編成されています。 kron(a

  2. Python Matplotlibの軸上にベクトル場をプロットしますか?

    matplotlibの軸上にベクトル場をプロットするには、次の手順を実行できます- 図のサイズを設定し、サブプロット間およびサブプロットの周囲のパディングを調整します。 X、Y、T、R、Uを作成 およびV numpyを使用したデータポイント。 現在の図に軸を追加して、現在の軸にします。 quiver()を使用して矢印の3Dフィールドをプロットします メソッド。 図を表示するには、 show()を使用します メソッド。 例 import numpy as np import matplotlib.pyplot as plt plt.rcParams[&qu