矩阵中的标量乘以numpy在相应位置的张量中的矩阵

时间:2018-04-20 07:19:41

标签: python numpy

请原谅我可能是一个简单的问题。

如果给出一个形状为[L,L]的矩阵U和一个形状为[L,L,m,n]的张量V,我想要一种简单的方法来计算U中标量与矩阵之间的乘法。张量在相应的位置。

例如,我想要以下操作

U[i,j] * V[i, j, :, :]

同时在整个索引中。

注意到U [i,j]是矩阵U中位置(i,j)的标量,而V [i,j,:,:]是位置(i,j)中的矩阵在张量V。

提前致谢!

更新#1

上述描述可能并不清楚。然后我再说清楚了。

给定矩阵U和张量V,如:

U = np.arange(2*2).reshape(2, 2)
V = np.arange(2*2*3*4).reshape(2, 2, 3, 4)

我想要张量结果R,其元素如下:

R[i,j,:,:] = U[i, j] * V[i, j, :, :]                      (1)

e.g。

U[0, 0] = 0
V[0, 0] = array([[ 0,  1,  2,  3],
                 [ 4,  5,  6,  7],
                 [ 8,  9, 10, 11]])

R[0, 0] = U[0, 0] * V[0, 0] = np.zeros((3, 4))  (for short)

另一个例子:

U[0, 1] = 1
V[0, 1] = array([[12, 13, 14, 15],
                 [16, 17, 18, 19],
                 [20, 21, 22, 23]])

R[0, 1] = U[0, 1] * V[0, 1] = V[0, 1]  (for short)

该过程将贯穿整个索引。

注意到索引i和j在(1)

中是相同的

所以我的目标是只用很少的代码完成上面的过程,而不是循环。

0 个答案:

没有答案