鉴于两个矩阵
A: m * r
B: n * r
Run Code Online (Sandbox Code Playgroud)
我想以产生另一矩阵C: m * n,每个条目C_ij是由外积计算的矩阵A_i和B_j.
例如,
A: [[1, 2],
[3, 4]]
B: [[3, 1],
[1, 2]]
Run Code Online (Sandbox Code Playgroud)
给
C: [[[3, 1], [[1 ,2],
[6, 2]], [2 ,4]],
[9, 3], [[3, 6],
[12,4]], [4, 8]]]
Run Code Online (Sandbox Code Playgroud)
我可以使用for循环来做,比如
for i in range (A.shape(0)):
for j in range (B.shape(0)):
C_ij = np.outer(A_i, B_j)
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一种矢量化的方法来进行此计算以加快速度?
给定一个4D数组M: (m, n, r, r),我如何求和所有m * n内部矩阵(形状(r, r))以获得新的形状矩阵(r * r)?
例如,
M [[[[ 4, 1],
[ 2, 1]],
[[ 8, 2],
[ 4, 2]]],
[[[ 8, 2],
[ 4, 2]],
[[ 12, 3],
[ 6, 3]]]]
Run Code Online (Sandbox Code Playgroud)
我希望结果应该是
[[32, 8],
[16, 8]]
Run Code Online (Sandbox Code Playgroud)