Python实现矩阵加法函数

在数学中,矩阵是一个由数值按照长方阵列排列而成的矩形阵列。矩阵加法是指两个相同维度的矩阵进行逐元素相加的操作。在Python中,我们可以使用嵌套列表或NumPy库来实现矩阵加法函数。

使用嵌套列表实现矩阵加法

嵌套列表是Python中常用的数据结构,它可以表示一个多维数组,非常适用于表示矩阵。我们可以通过遍历两个矩阵的每个元素,并将它们相加来实现矩阵加法。

def matrix_addition(matrix1, matrix2):
    if len(matrix1) != len(matrix2) or len(matrix1[0]) != len(matrix2[0]):
        raise ValueError("两个矩阵的维度不匹配")
    
    result = []
    for i in range(len(matrix1)):
        row = []
        for j in range(len(matrix1[0])):
            row.append(matrix1[i][j] + matrix2[i][j])
        result.append(row)
    
    return result

以上代码定义了一个名为matrix_addition的函数,它接受两个嵌套列表作为参数表示的矩阵。首先,它会检查两个矩阵的维度是否相同,如果不同则会抛出一个ValueError异常。然后,它会创建一个空的结果列表,并使用两个嵌套循环遍历两个矩阵的每个元素,将它们相加后添加到结果列表中。最后,返回结果列表。

让我们来看一个示例,假设我们有两个矩阵matrix1matrix2

matrix1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
matrix2 = [[9, 8, 7], [6, 5, 4], [3, 2, 1]]

result = matrix_addition(matrix1, matrix2)
print(result)  # 输出: [[10, 10, 10], [10, 10, 10], [10, 10, 10]]

在上面的示例中,我们将两个矩阵matrix1matrix2作为参数传递给matrix_addition函数,并将结果存储在result变量中。然后,我们将结果打印出来,得到了一个每个元素都是10的矩阵。

使用NumPy库实现矩阵加法

NumPy是Python中用于科学计算的一个强大库,它提供了一个ndarray对象,可以高效地表示和操作多维数组。使用NumPy库,我们可以更简洁地实现矩阵加法。

首先,确保已经安装了NumPy库。可以使用以下命令来安装:

pip install numpy

然后,我们可以使用NumPy库提供的numpy.array函数将嵌套列表转换为ndarray对象,然后使用+运算符执行矩阵加法。

import numpy as np

def matrix_addition(matrix1, matrix2):
    array1 = np.array(matrix1)
    array2 = np.array(matrix2)
    
    result = array1 + array2
    
    return result.tolist()

以上代码中,我们首先使用np.array函数将两个嵌套列表转换为ndarray对象。然后,我们可以直接使用+运算符执行逐元素相加的操作。最后,使用tolist方法将结果转换回嵌套列表形式。

让我们使用NumPy库重写之前的示例:

import numpy as np

matrix1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
matrix2 = [[9, 8, 7], [6, 5, 4], [3, 2, 1]]

result = matrix_addition(matrix1, matrix2)
print(result)  # 输出: [[10, 10, 10], [10, 10, 10], [10, 10, 10]]