在 NumPy 或类似的数组操作库中,多维矩阵乘法是按照最后两个维度进行的。这被称为 "最后两维矩阵乘法规则" 或 "尾部维度矩阵乘法规则"。
例如,考虑两个三维数组 A
和 B
,其中 A
的形状是 (a, b, c)
,而 B
的形状是 (a, c, d)
。在这种情况下,可以使用 np.matmul
函数(或 @
运算符)对这两个数组进行矩阵乘法,如下所示:
import numpy as np
# 创建两个三维数组
A = np.random.rand(2, 3, 4) # 形状为 (2, 3, 4)
B = np.random.rand(2, 4, 6) # 形状为 (2, 4, 6)
# 对最后两维进行矩阵乘法
result = np.matmul(A, B) # 或者使用 result = A @ B
print(result.shape) # 结果的形状为 (2, 3, 6)
在这个例子中,A
和 B
的最后两维分别是 (3, 4)
和 (4, 6)
,它们满足矩阵乘法的要求,因此得到的结果是一个形状为 (2, 3, 6)
的数组。
需要注意的是,这个规则只适用于矩阵乘法,而不是元素级别的乘法。如果你需要执行元素级别的乘法,可以使用 *
运算符。