计算多个输入的矩阵乘积

compute matrix product for multiple inputs

我正在尝试计算 b = A*x 给出的变换。 A 是 (3,4) 矩阵。如果 x 是一个 (4,1) 向量,则结果为 b (3,1)。

相反,对于 x,我将一堆向量连接成一个矩阵,我正在尝试评估每个 x 值的变换。所以 x 是 (20, 4)。我如何在 numpy 中广播它以便获得 b (20,3) 的 20 个结果值?

我可以遍历每个输入并计算输出,但感觉必须有更好的方法来使用广播。

例如。

A = [[1,0,0,0],
[2,0,0,0],
[3,0,0,0]]

如果 x 是:

x = [[1,1,1,1],
[2,2,2,2]]

b = [[1,2,3],
[2,4,6]]

x 的每一行都与 A 相乘,结果作为一行存储在 b 中。

numpy 点

import numpy as np

A = np.random.normal(size=(3,4))

x = np.random.normal(size=(4,20))

y = np.dot(A,x)

print y.shape

结果:(3, 20)

当然如果你想要 (20,3) 你可以使用 np.transpose()