NumPy 函数

NumPy matmul() 函数用于执行两个数组的矩阵乘积。具体来说,

  • 如果a和b都是二维数组,则为矩阵乘法。
  • 如果a或b是一维数组,则将其提升为矩阵通过在其维度前添加 1 来实现。矩阵乘法后,前面的 1 被删除。
  • 如果任一参数是 N 维,N > 2,则将其视为驻留在最后两个索引中的矩阵堆栈并相应地广播。

请注意,此函数不允许与标量相乘。

语法

numpy.matmul(a, b, out=None) 

参数

a必填。 指定第一个类似数组的参数。不允许使用标量。
b必需。 指定第二个类似数组的参数。不允许使用标量。
out可选。 指定结果的输出数组。默认值为"无"。如果提供,它必须具有与输出相同的形状。

返回值

返回两个数组的矩阵乘积。

异常

如果 a 的最后一个维度与 b 的倒数第二个维度或标量值的大小不同,则引发 ValueError 异常传入。

示例:具有一维数组的 matmul() 函数

当使用两个一维数组时,该函数返回数组的内积。

import numpy as np
Arr1 = [5, 8]
Arr2 = [10, 20]

#返回 5*10 + 8*20 = 210
print(np.matmul(Arr1, Arr2)) 

上述代码的输出将是:

210 

示例:带矩阵的 matmul() 函数

当使用两个矩阵时,该函数返回矩阵乘法。

import numpy as np
Arr1 = np.array([[1, 2], 
                 [3, 4]])
Arr2 = np.array([[10, 20], 
                 [30, 40]])
Arr3 = np.matmul(Arr1, Arr2)

print(Arr3) 

上述代码的输出将是:

[[ 70 100]
 [150 220]] 

矩阵乘法计算如下:

[[1*10+2*30 1*20+2*40]
 [3*10+4*30 3*20+4*40]]

= [[ 70 100]
   [150 220]]