使用多维数组添加两个矩阵的Python程序
矩阵是排列在行和列中的许多数字的二维数组。两个矩阵的加法是将两个矩阵的相应元素相加,并将结果矩阵中的总和放置在相应的位置的过程。而且,只有当两个矩阵具有相等的行数和列数时,才能实现这一点。
在Python中,使用列表或NumPy数组创建多维数组。列表数据结构可以接受列表作为元素,因此我们可以轻松地创建矩阵。此外,Numpy模块提供了众多用于处理多维数组的方法。
输入输出场景
两个矩阵的加法
[a11,a12,a13] [b11,b12,b13] [a11 + b11,a12 + b12,a13 + b13]
[a21,a22,a23] + [b21,b22,b23] = [a21 + b21,a22 + b22,a23 + b23]
[a31,a32,a33] [b31,b32,b33] [a31 + b31,a32 + b32,a33 + b33]
在本文中,我们将看到如何使用Python中的多维数组添加两个矩阵。
使用For循环
在这里,我们将使用嵌套的for循环来遍历给定输入矩阵的每一行和每一列。在每次迭代中,我们将两个输入矩阵的相应元素相加,并将它们存储在结果矩阵中。
例子
# 通过使用多维数组定义矩阵
matrix_a = [[1,2,3],
[4 ,5,6],
[7 ,8,9]]
matrix_b = [[1,2,3],
[4 ,5,6],
[7 ,8,9]]
#用于显示矩阵的函数
def display(matrix):
for row in matrix:
print(row)
print()
#显示两个输入矩阵
print('第一个矩阵如下:')
display(matrix_a)
print('第二个矩阵如下:')
display(matrix_b)
#用0对所有元素进行初始化
result = [[0, 0, 0],[0, 0, 0],[0, 0, 0]]
#添加两个矩阵
for i in range(len(matrix_a)):
#遍历行
for j in range(len(matrix_a[0])):
#遍历列
result[i][j] = matrix_a[i][j] + matrix_b[i][j]
print('两个矩阵的和为:')
display(result)
输出
第一个矩阵如下:
[1,2,3]
[4,5,6]
[7,8,9]
第二个矩阵如下:
[1,2,3]
[4,5,6]
[7,8,9]
两个矩阵的和为:
[2,4,6]
[8,10,12]
[14,16,18]
将两个输入矩阵的相应元素之和存储在我们最初使用所有元素为零创建的结果矩阵中。
使用列表推导式
列表推导提供了构建列表的最短语法,而不必在for循环之前初始化空列表,然后一个一个地添加值。
例子
此示例与上一个示例类似,但区别在于这里我们使用列表推导式而不是创建所有元素为零的结果矩阵。
# 通过使用多维数组定义矩阵
matrix_a = [[1,2,5],
[1,0,6],
[9,8,0]]
matrix_b = [[0,3,5],
[4,6,9],
[1,8,0]]
#用于显示矩阵的函数
def display(matrix):
for row in matrix:
print(row)
print()
#显示两个输入矩阵
print('第一个矩阵如下:')
display(matrix_a)
print('第二个矩阵如下:')
display(matrix_b)
#添加两个矩阵
result = [[matrix_a[i][j] + matrix_b[i][j] for j in range(len(matrix_a[0]))] for i in range(len(matrix_a))]
print('两个矩阵的和为:')
display(result)
输出
第一个矩阵如下:
[1,2,5]
[1,0,6]
[9,8,0]
第二个矩阵如下:
[0,3,5]
[4,6,9]
[1,8,0]
两个矩阵的和为:
[1,5,10]
[5,6,15]
[10,16,0]
使用NumPy数组
NumPy模块在Python中有许多内置功能可处理多维数组。通过使用这些数组,我们可以轻松地将两个矩阵相加。
示例
在这个例子中,我们将使用numpy.array()方法创建两个多维数组。然后在两个数组之间应用加法运算符。
import numpy as np
# 使用numpy数组定义矩阵
matrix_a = np.array([[1,2,5], [1,0,6], [9,8,0]])
matrix_b = np.array([[0,3,5], [4,6,9], [1,8,0]])
# 显示两个输入矩阵
print('第一个矩阵定义为:')
print(matrix_a)
print('第二个矩阵定义为:')
print(matrix_b)
# 将两个矩阵相加
result = matrix_a + matrix_b
print('两个矩阵的加法结果为:')
print(result)
输出
第一个矩阵定义为:
[[1 2 5]
[1 0 6]
[9 8 0]]
第二个矩阵定义为:
[[0 3 5]
[4 6 9]
[1 8 0]]
两个矩阵的加法结果为:
[[ 1 5 10]
[ 5 6 15]
[10 16 0]]
我们只是在numpy数组matrix_a和matrix_b之间应用了加法运算符(+)来添加多维数组。