NumPy - 矩阵加法



什么是矩阵加法?

矩阵加法是指将两个相同大小的矩阵相加的操作。在矩阵加法中,一个矩阵中的每个元素都与其在另一个矩阵中对应的元素相加。

要进行矩阵加法,两个矩阵必须具有相同的维度,即相同的行数和列数。

如果您有两个相同大小的矩阵,例如AB,则它们的和C定义为

C = A + B

其中,

Cij = Aij + Bij

换句话说,矩阵C中第ith行和第jth列的元素是矩阵AB中对应元素的和。

矩阵加法的例子

考虑以下两个矩阵

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]]

因此,将矩阵AB相加的结果为矩阵C

C = [[6, 8], 
     [10, 12]]

NumPy 中的矩阵加法

在 NumPy 中,矩阵加法可以使用+运算符或numpy.add()函数完成。NumPy 数组提供按元素执行矩阵运算(包括加法)的能力,这对于执行快速的数学计算非常有用。

执行矩阵加法时,需要注意以下几点:

  • 矩阵维度:要使矩阵加法有效,矩阵必须具有相同的维度(相同的行数和列数)。
  • 按元素运算:NumPy 自动处理按元素运算,使用+运算符或numpy.add()函数添加矩阵非常容易。
  • 灵活的数组:NumPy 数组很灵活,只要维度兼容,就可以处理不同大小的矩阵。

在 NumPy 中创建矩阵

在执行矩阵加法之前,让我们首先在 NumPy 中创建矩阵。NumPy 中的矩阵本质上是二维数组,我们可以使用np.array()函数创建它们,如下所示:

import numpy as np

# Creating two 2x2 matrices
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])

# Print the matrices
print("Matrix A:")
print(A)
print("\nMatrix B:")
print(B)

获得的输出如下:

Matrix A:
[[1 2]
 [3 4]]

Matrix B:
[[5 6]
 [7 8]]

使用+运算符进行矩阵加法

在 NumPy 中添加两个矩阵最简单的方法是使用+运算符。此运算符将自动执行两个矩阵的按元素加法。

例子

在下面的示例中,我们使用“+”运算符添加两个矩阵“A”和“B”:

import numpy as np

# Creating two 2x2 matrices
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
# Adding two matrices using the + operator
C = A + B

# Print the result
print("Matrix C (A + B):")
print(C)

获得的输出如下:

Matrix C (A + B):
[[ 6  8]
 [10 12]]

使用numpy.add()函数

或者,您可以使用numpy.add()函数执行矩阵加法,其工作方式与+运算符相同。此函数将两个矩阵(或数组)作为输入,并返回它们的和。

例子

在此示例中,我们使用“numpy.add()”函数添加两个矩阵“A”和“B”:

import numpy as np

# Creating two 2x2 matrices
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
# Adding two matrices using numpy.add() function
C = np.add(A, B)

# Print the result
print("Matrix C (A + B using numpy.add()):")
print(C)

我们获得的输出如下:

Matrix C (A + B using numpy.add()):
[[ 6  8]
 [10 12]]

矩阵加法中的广播机制

虽然矩阵加法需要相同形状的矩阵,但 NumPy 具有称为广播机制的强大功能,允许对不同形状的数组进行按元素运算。

广播机制会自动调整数组的形状,以便在它们之间进行运算。但是,对于矩阵加法而言,两个矩阵必须具有相同的形状。

例子

为了让您了解广播机制的工作原理(尽管它不直接适用于矩阵加法),以下是如何将标量添加到矩阵中的示例:

import numpy as np

# Create a 2x2 matrix
A = np.array([[1, 2], [3, 4]])

# Add a scalar to the matrix using broadcasting
B = A + 10

# Print the result
print("Matrix A + 10:")
print(B)

产生的结果如下:

Matrix A + 10:
[[11 12]
 [13 14]]

矩阵加法中的错误处理

如果您尝试添加形状不同的两个矩阵(即维度不同),NumPy 将引发错误。执行矩阵加法时,这是一个需要注意的重要点。

例子

以下是在 NumPy 中执行矩阵加法时维度不匹配的示例:

import numpy as np

# Create two matrices with different shapes
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 变换的核心,其中矩阵加法有助于进行平移等变换。
广告