numpy.matmul()函数返回两个数组的矩阵乘积,虽然它为二维数组返回正常乘积,但如果任一参数的维数> 2,则将其视为驻留在最后两个索引中的矩阵堆栈,并进行相应广播。

另一方面,如果任一自变量是一维数组,则通过在其维上附加1来将其提升为矩阵,然后在乘法后将其删除。

# For 2-D array, it is matrix multiplication 
import numpy.matlib 
import numpy as np 

a = [[1,0],[0,1]] 
b = [[4,1],[2,2]] 
print np.matmul(a,b)

它将产生以下输出-

[[4  1] 
 [2  2]] 
# 2-D mixed with 1-D 
import numpy.matlib 
import numpy as np 

a = [[1,0],[0,1]] 
b = [1,2] 
print np.matmul(a,b) 
print np.matmul(b,a)

它将产生以下输出-

[1  2] 
[1  2] 
# one array having dimensions > 2 
import numpy.matlib 
import numpy as np 

a = np.arange(8).reshape(2,2,2) 
b = np.arange(4).reshape(2,2) 
print np.matmul(a,b)

它将产生以下输出-

[[[2   3] 
   [6   11]] 
  [[10  19] 
   [14  27]]]

参考链接

https://www.learnfk.com/numpy/numpy-matmul.html