Python 带广播的乘法阵列

Python 带广播的乘法阵列,python,numpy,array-broadcasting,Python,Numpy,Array Broadcasting,我有一个mxn A矩阵和一个nxr B矩阵,我想用一种特定的方式乘以它们,得到一个mxr矩阵。我想把A的第I列中的每个元素作为标量乘以B的第I行,然后求n个矩阵的和 比如说 a = [[0, 1, 2], [3, 4, 5], b = [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]] 产品将是 a*b = [[0, 0, 0, 0], + [[4, 5, 6, 7], + [[16, 18, 20, 22]

我有一个mxn A矩阵和一个nxr B矩阵,我想用一种特定的方式乘以它们,得到一个mxr矩阵。我想把A的第I列中的每个元素作为标量乘以B的第I行,然后求n个矩阵的和

比如说

a = [[0, 1, 2],
     [3, 4, 5],

b = [[0, 1, 2, 3],
     [4, 5, 6, 7],
     [8, 9, 10, 11]]
产品将是

a*b = [[0, 0, 0, 0],  +  [[4, 5, 6, 7],      +  [[16, 18, 20, 22],  =  [[20, 23, 26, 29],
       [0, 3, 6, 9]]      [16, 20, 24, 28]]      [40, 45, 50, 55]]      [56, 68, 80, 92]]

我不能使用任何循环,所以我很确定我必须使用广播,但我不知道如何使用。非常感谢您的帮助

您的输入矩阵分别为(2,3)和(3,4)形状,您想要的结果为(2,4)形状

你需要的只是两个矩阵的乘积

a = np.array([[0, 1, 2],
     [3, 4, 5]])

b = np.array([[0, 1, 2, 3],
     [4, 5, 6, 7],
     [8, 9, 10, 11]])

print (np.dot(a,b))

# array([[20, 23, 26, 29],
#        [56, 68, 80, 92]])

哈哈哇,我醒得太久了。完全忘记了矩阵乘法就是这样工作的