2 个矢量场的 Tensordot
Tensordot of 2 vector fields
我想计算 2 个形状为 (1144,3)
的张量的元素张量积,这意味着如果我理解正确的话,我想计算沿第二个轴的张量点。
我希望结果的形状为 (1144,3,3)
。
我目前正在尝试使用 numpys tensordot()
函数来实现此目的,但我无法找出用于获得 (1144,3,3)
.
形状的正确轴
您可以为此使用 numpy.einsum。
In [30]: a
Out[30]:
array([[0, 1, 2],
[3, 4, 5]])
In [31]: np.einsum('ij,ik->ijk', a, a)
Out[31]:
array([[[ 0, 0, 0],
[ 0, 1, 2],
[ 0, 2, 4]],
[[ 9, 12, 15],
[12, 16, 20],
[15, 20, 25]]])
因为numpy.tensordot
只支持2个元素axes
这意味着没有办法模仿
->...
-样的行为。所以我看不出 numpy.tensordot
.
是如何做到的
我想计算 2 个形状为 (1144,3)
的张量的元素张量积,这意味着如果我理解正确的话,我想计算沿第二个轴的张量点。
我希望结果的形状为 (1144,3,3)
。
我目前正在尝试使用 numpys tensordot()
函数来实现此目的,但我无法找出用于获得 (1144,3,3)
.
您可以为此使用 numpy.einsum。
In [30]: a
Out[30]:
array([[0, 1, 2],
[3, 4, 5]])
In [31]: np.einsum('ij,ik->ijk', a, a)
Out[31]:
array([[[ 0, 0, 0],
[ 0, 1, 2],
[ 0, 2, 4]],
[[ 9, 12, 15],
[12, 16, 20],
[15, 20, 25]]])
因为numpy.tensordot
只支持2个元素axes
这意味着没有办法模仿
->...
-样的行为。所以我看不出 numpy.tensordot
.