Skip to main content
 首页 » 编程设计

python之如何使用numpy将一个矩阵与另一个矩阵中的每一行相乘

2025年05月04日18bjzhanghao

import numpy 
A = numpy.array([ 
  [0,1,1], 
  [2,2,0], 
  [3,0,3] 
]) 
 
B = numpy.array([ 
  [1,1,1], 
  [2,2,2], 
  [3,2,9], 
  [4,4,4], 
  [5,9,5] 
]) 

A的维度:N * N(3*3)

B的维度:K * N(5*3)

预期结果是: C = [ A * B[0], A * B[1], A * B[2], A * B[3], A * B[4]] (C的维度也是5*3)

我是 numpy 的新手,不确定如何在不使用 for 循环的情况下执行此操作。

谢谢!

请您参考如下方法:

根据您提供的数学计算,我认为您正在评估 A 乘以 B 转置。如果您希望结果矩阵的大小为 5*3,您可以转置它(相当于 numpy.matmul(B.transpose(),A))。

import numpy 
A = numpy.array([ 
  [0,1,1], 
  [2,2,0], 
  [3,0,3] 
]) 
 
B = numpy.array([ 
  [1,1,1], 
  [2,2,2], 
  [3,2,9], 
  [4,4,4], 
  [5,9,5] 
]) 
 
print(numpy.matmul(A,B.transpose())) 
output :array([[ 2,  4, 11,  8, 14], 
               [ 4,  8, 10, 16, 28], 
               [ 6, 12, 36, 24, 30]]) 
 
for i in range(5): 
    print (numpy.matmul(A,B[i])) 
Output: 
[2 4 6] 
[ 4  8 12] 
[11 10 36] 
[ 8 16 24] 
[14 28 30]