【发布时间】:2014-09-10 10:42:41
【问题描述】:
给定两个矩阵
A: m * r
B: n * r
我想生成另一个矩阵C: m * n,每个条目C_ij 是由A_i 和B_j 的外积计算的矩阵。
例如,
A: [[1, 2],
[3, 4]]
B: [[3, 1],
[1, 2]]
给了
C: [[[3, 1], [[1 ,2],
[6, 2]], [2 ,4]],
[9, 3], [[3, 6],
[12,4]], [4, 8]]]
我可以使用 for 循环来做到这一点,比如
for i in range (A.shape(0)):
for j in range (B.shape(0)):
C_ij = np.outer(A_i, B_j)
我想知道是否有一种矢量化的方式来做这个计算来加速它?
【问题讨论】:
-
您想要一个 4D、
(m, n, r, r)-shape 数组,还是想要一个 2D、(m, n)-shapeobjectdtype 数组,其中每个元素都是另一个数组?我强烈推荐第一个选项,但您的描述听起来更接近第二个。 -
对不起,我更喜欢第一个,4D
(m, n, r, r)-shape 数组。