请原谅我可能是一个简单的问题。
如果给出一个形状为[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)
中是相同的所以我的目标是只用很少的代码完成上面的过程,而不是循环。