Python 计算多输入矩阵积
我试图计算一个由b=a*x给出的变换。A是(3,4)矩阵。如果x是一(4,1)个向量,则结果是b(3,1)Python 计算多输入矩阵积,python,numpy,array-broadcasting,Python,Numpy,Array Broadcasting,我试图计算一个由b=a*x给出的变换。A是(3,4)矩阵。如果x是一(4,1)个向量,则结果是b(3,1) 相反,对于x,我有一组向量连接成一个矩阵,我试图计算x的每个值的变换。所以x是(20,4)。我如何在numpy中广播它,从而得到b(20,3)的20个结果值 我可以循环每个输入并计算输出,但感觉一定有更好的方式使用广播 例如 如果x是: x = [[1,1,1,1], [2,2,2,2]] b = [[1,2,3], [2,4,6]] x的每一行与A相乘,结果存储为b中的一行。nump
相反,对于x,我有一组向量连接成一个矩阵,我试图计算x的每个值的变换。所以x是(20,4)。我如何在numpy中广播它,从而得到b(20,3)的20个结果值 我可以循环每个输入并计算输出,但感觉一定有更好的方式使用广播 例如 如果x是:
x = [[1,1,1,1],
[2,2,2,2]]
b = [[1,2,3],
[2,4,6]]
x的每一行与A相乘,结果存储为b中的一行。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()“对于x,我有一组向量连接成一个矩阵,我试图计算x的每个值的变换。因此x是(20,4)。”
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