我正在尝试计算由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中的一行。
答案 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()