NumPy 中的 3D 矩阵乘法

17 Mar 2025 | 4 分钟阅读

什么是矩阵?

在编程中,矩阵也被视为多维数组。一个矩阵可以是任何维度,例如二维矩阵、三维矩阵等。

我们可以通过排列许多一维数组(一维数组的堆栈)来创建二维矩阵。同样,我们可以通过在第三个方向上堆叠二维数组或矩阵来创建三维数组。

我们可以对相同维度的矩阵进行算术运算,如加法、减法或乘法。我们不能对不同维度的矩阵进行运算。

我们可以使用 numpy 库在 Python 中将两个三维 (3-d) 矩阵相乘。Numpy 是 Python 编程语言中的一个库,用于进行数组运算。

我们可以将任何三维矩阵的大小表示为 (i,j,k),这意味着有 i 个二维矩阵排列在一起,每个二维矩阵的大小为 jxk。

因此,正如我们所知,要相乘两个二维矩阵,我们遵循 RXC 规则,其中第一个矩阵的列数应等于第二个矩阵的行数。

示例

输出

Numpy-3d Matrix Multiplication
Numpy-3d Matrix Multiplication

说明

在上面的程序中,我们有两个 3D 矩阵,并使用 numpy 库实现了矩阵乘法。我们在文件中导入了 humpy 库以使用其函数。

我们使用 random.randInt 函数,它将以我们提供的范围内的值创建一个给定大小的矩阵。

第一个矩阵的大小是 3x5x2 的随机数,这意味着有三个大小为 5x2 的二维矩阵。同样,我们创建了第二个大小为 3x2x5 的随机数矩阵,这意味着有三个大小为 2x5 的二维矩阵。

由于第一个 3D 矩阵的二维矩阵的列数与第二个 3D 矩阵的二维矩阵的行数相同,因此我们可以使用 R-C 乘法规则轻松地相乘二维矩阵。

对于矩阵乘法,我们使用了 numpy 库的内置 matmul 函数。由于有三个 3D 矩阵,结果中也会有三个 3D 矩阵。

二维矩阵的大小将是 5x5。所以最后,结果矩阵的大小将是 3x5x5。

在结果矩阵中,matrix1 的第一个二维矩阵将与 matrix2 的第一个二维矩阵相乘,同样,所有矩阵都将相乘。

result[0] = matrix1[0]X matrix2[0]

result[1] = matrix1[1]X matrix2[1]

result[2] = matrix1[2]X matrix2[2]

注意:如果二维矩阵的大小不相同,则会出现错误

示例 2

输出

Numpy-3d Matrix Multiplication

说明

在上面的代码中,matrix1 中二维矩阵的大小是 5 x 2,在 matrix2 中是 3x5,因此它将无法相乘,并且我们会得到上述编译错误。

注意:如果二维矩阵的数量不相同,程序中也会出现错误。

示例 3

输出

Numpy-3d Matrix Multiplication

说明

在上面的代码中,matrix1 中的二维矩阵数量是三个,matrix2 中的数量是六个。因此,由于大小不相等,会出现错误。