python 矩阵求和(python矩阵维求和)

1年前 (2023-09-08)阅读112回复0
李昊宇
李昊宇
  • 注册排名10010
  • 经验值5
  • 级别
  • 主题1
  • 回复0
楼主

在Python中,矩阵维求和是经常使用到的操作。矩阵是由多行、多列组成的二维数组。矩阵维求和指将某一维度上的所有元素相加。

# 例如,对于以下矩阵
matrix = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
# 如果要对第一维度求和,结果为 [12, 15, 18]
dim1_sum = [sum(row) for row in matrix]
print(dim1_sum)
# 如果要对第二维度求和,结果为 [6, 15, 24]
dim2_sum = [sum(col) for col in zip(*matrix)]
print(dim2_sum)

在第一段代码中,使用列表推导式对矩阵的每一行求和,将结果存储在一个列表中。在第二段代码中,使用了一个小技巧:将矩阵进行转置(使用zip函数),然后再对每一行求和。这样就能够方便地对第二维度进行求和。

需要注意的是,在实际应用中,矩阵的维度可能不止两维。在这种情况下,需要对每一个维度都进行求和,可以使用递归函数实现。

def multi_dimensional_sum(matrix, axis):
if len(matrix) == 0:
return None
if axis == 0:
return [sum(row) for row in matrix]
else:
return [multi_dimensional_sum([row[i] for row in matrix], axis-1)
for i in range(len(matrix[0]))]
# 对于以下三维矩阵
matrix_3d = [[[1, 2],
[3, 4]],
[[5, 6],
[7, 8]],
[[9, 10],
[11, 12]]]
# 对第一维度求和,结果为 [[4, 6], [12, 14], [20, 22]]
dim1_sum = multi_dimensional_sum(matrix_3d, 0)
print(dim1_sum)
# 对第二维度求和,结果为 [[4, 6], [12, 14]]
dim2_sum = multi_dimensional_sum(matrix_3d, 1)
print(dim2_sum)
# 对第三维度求和,结果为 [3, 11]
dim3_sum = multi_dimensional_sum(matrix_3d, 2)
print(dim3_sum)

在这段代码中,定义了一个递归函数multi_dimensional_sum。当axis为0时,函数对第一维度求和,返回一个包含每一行和的列表;当axis不为0时,函数对矩阵的每一列递归调用multi_dimensional_sum,直到axis为0。

通过以上方法,可以方便地对任意维度的矩阵进行求和操作。

本文可能转载于网络公开资源,如果侵犯您的权益,请联系我们删除。

本文地址:https://www.pyask.cn/info/216.html

0
回帖

python 矩阵求和(python矩阵维求和) 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息