【发布时间】:2021-03-05 01:36:21
【问题描述】:
假设我有两个矩阵,我想取第一个矩阵的行,将其转置并将@应用于第二个矩阵的对应行以获得一个矩阵。对每个中的行数执行此操作。例如:
矩阵 A = N x p
矩阵 B = N x q
操作后我有 N (p x q) 个矩阵
一个例子来说明第一行。
>>> x
array([[2, 1, 2],
[4, 3, 1],
[1, 2, 3],
[1, 2, 1]])
>>> g
array([[2, 3],
[3, 3],
[1, 2],
[2, 5]])
第一次手术后:
>>> x[0,:,np.newaxis] @ g[np.newaxis,0,:]
array([[4, 6],
[2, 3],
[4, 6]])
第二次手术后:
>>> x[1,:,np.newaxis] @ g[np.newaxis,1,:]
array([[12, 12],
[ 9, 9],
[ 3, 3]])
以此类推,N 次返回 N (p x q) 个矩阵(这里是 3 (3x2) 个矩阵)。如何在没有循环的 Numpy 中做到这一点?
【问题讨论】:
标签: python numpy vectorization