计算多个输入的矩阵乘积

时间:2016-02-29 02:52:25

标签: python numpy numpy-broadcasting

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

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

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

EG。

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中的一行。

1 个答案:

答案 0 :(得分:0)

numpy dot

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()