Python 计算多输入矩阵积

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

我试图计算一个由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中的一行。

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