NumPy - 矩阵加法
什么是矩阵加法?
矩阵加法是将两个相同大小的矩阵相加的运算。在矩阵加法中,一个矩阵中的每个元素都会添加到另一个矩阵中的相应元素中。
要进行矩阵加法,两个矩阵必须具有相同的维度,即相同的行数和列数。
如果有两个矩阵,例如 A 和 B,大小相同,则它们的和 C 定义为:
C = A + B
其中,
Cij = Aij + Bij
换句话说,矩阵 C 第 i 行和 j 列的元素是相应元素的和在矩阵 A 和 B 中。
矩阵加法示例
考虑以下两个矩阵:
A = [[1, 2], [3, 4]] B = [[5, 6], [7, 8]]
总和 C = A + B 将按如下方式计算:
C = [[1+5, 2+6], [3+7, 4+8]] = [[6, 8], [10, 12]]
因此,矩阵 A 和 B 相加的结果为矩阵 C:
C = [[6, 8], [10, 12]]
NumPy 中的矩阵加法
在 NumPy 中,矩阵加法使用 + 运算符或 numpy.add() 函数完成。 NumPy 数组提供了逐元素执行矩阵运算(包括加法)的能力,这对于执行快速数学计算非常有用。
执行矩阵加法时需要记住以下要点 -
- 矩阵维度:为了使矩阵加法有效,矩阵必须具有相同的维度(相同的行数和列数)。
- 逐元素运算: NumPy 自动处理逐元素运算,因此使用 + 运算符或 numpy.add() 函数可以非常轻松地进行矩阵加法运算。
- 灵活的数组: NumPy 数组非常灵活,只要维度兼容,就可以处理不同大小的矩阵。
在 NumPy 中创建矩阵
在执行矩阵加法之前,让我们先创建NumPy 中的矩阵。 NumPy 中的矩阵本质上是二维数组,我们可以使用 np.array() 函数创建它们,如下所示 -
import numpy as np # 创建两个 2x2 矩阵 A = np.array([[1, 2], [3, 4]]) B = np.array([[5, 6], [7, 8]]) # 打印矩阵 print("矩阵 A:") print(A) print(" 矩阵 B:") print(B)
以下是得到的输出 -
矩阵 A: [[1 2] [3 4]] 矩阵 B: [[5 6] [7 8]]
使用 + 运算符进行矩阵加法
在 NumPy 中,将两个矩阵相加的最简单方法是使用 + 运算符。该运算符将自动对两个矩阵执行逐元素加法。
示例
在下面的示例中,我们使用"+"运算符将两个矩阵"A"和"B"相加 -
import numpy as np # 创建两个 2x2 矩阵 A = np.array([[1, 2], [3, 4]]) B = np.array([[5, 6], [7, 8]]) # 使用 + 运算符将两个矩阵相加 C = A + B # 打印结果 print("矩阵 C (A + B):") print(C)
输出结果如下所示 -
矩阵 C (A + B): [[ 6 8] [10 12]]
使用 numpy.add() 函数
或者,您可以使用 numpy.add() 函数执行矩阵加法,其工作原理与 + 运算符相同。此函数接受两个矩阵(或数组)作为输入,并返回它们的和。
示例
在本例中,我们使用"numpy.add()"函数将两个矩阵"A"和"B"相加 -
import numpy as np # 创建两个 2x2 矩阵 A = np.array([[1, 2], [3, 4]]) B = np.array([[5, 6], [7, 8]]) # 使用 numpy.add() 函数将两个矩阵相加 C = np.add(A, B) # 打印结果 print("Matrix C (A + B using numpy.add()):") print(C)
我们得到如下所示的输出−
矩阵 C(A + B 使用 numpy.add()): [[ 6 8] [10 12]]
矩阵加法中的广播
虽然矩阵加法需要相同形状的矩阵,但 NumPy 有一个强大的功能,称为广播,它允许在不同形状的数组之间进行元素级运算。
广播会自动调整数组的形状,以允许它们之间进行运算。但是,具体到矩阵加法,两个矩阵必须具有相同的形状。
示例
为了让您了解广播的工作原理(尽管它不直接适用于矩阵加法),这里有一个将标量添加到矩阵的示例 -
import numpy as np # 创建一个 2x2 矩阵 A = np.array([[1, 2], [3, 4]]) # 使用广播将标量添加到矩阵 B = A + 10 # 打印结果 print("矩阵 A + 10:") print(B)
生成的结果如下 -
矩阵 A + 10: [[11 12] [13 14]]
矩阵加法中的错误处理
如果尝试将两个形状不同(即维度不同)的矩阵相加,NumPy 将引发错误。这是执行矩阵加法时需要注意的一点。
示例
以下是在 NumPy 中执行矩阵加法时维度不匹配的示例 -
import numpy as np # 创建两个不同形状的矩阵 A = np.array([[1, 2], [3, 4]]) B = np.array([[5, 6, 7]]) C = A + B print(C)
执行上述代码后,我们得到以下输出 -
Traceback (most recent call last): File "/home/cg/root/6734345c5507a/main.py", line 6, in <module> C = A + B ValueError: operands could not be broadcast together with shapes (2,2) (1,3)
矩阵加法的应用
- 图像处理:矩阵将图像表示为像素值。矩阵加法用于通过增加亮度或调整像素值来操作图像。
- 数据分析:在数据科学中,矩阵表示数据集。诸如加法之类的矩阵运算有助于合并或修改数据集。
- 线性系统:矩阵加法用于通过将表示不同系数的矩阵相加来解决线性方程组。
- 计算机图形学:矩阵运算是 3D 变换的核心,其中矩阵加法有助于平移等变换。