You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取矩阵每列最大值并保存至新列表?

嘿,这个需求其实很好实现,核心就是按列遍历矩阵,提取每一列的最大值。我给你整理了几种Python实现方法,都是日常开发里常用的:

方法1:用Python内置zip()函数(最简洁高效)

这是Python里处理这类问题最常用的写法,利用zip(*matrix)把矩阵的行转成列,再对每一列取最大值:

# 第一个示例矩阵
matrix = [[0,0,2],[1,0,1],[2,1,0]]
result = [max(col) for col in zip(*matrix)]
print(result)  # 输出: [2, 1, 2]

# 第二个示例矩阵
matrix2 = [[0,0,2],[1,0,1],[2,1,0],[2,1,3]]
result2 = [max(col) for col in zip(*matrix2)]
print(result2)  # 输出: [2, 1, 3]

简单解释下:*matrix会把矩阵的每一行拆成独立参数传给zip(),zip()会按位置将各行的元素配对,相当于完成了行转列的操作。之后用列表推导式遍历每一列,调用max()取最大值即可。

方法2:手动遍历列索引(适合新手理解逻辑)

如果想更直观地理解每一步操作,可以手动遍历列的索引,逐列提取元素并取最大值:

matrix = [[0,0,2],[1,0,1],[2,1,0]]
# 假设矩阵所有行的长度一致,先获取列数
column_count = len(matrix[0])
result = []

for col_idx in range(column_count):
    # 提取当前列的所有元素
    current_column = [matrix[row_idx][col_idx] for row_idx in range(len(matrix))]
    # 把当前列的最大值加入结果列表
    result.append(max(current_column))

print(result)  # 输出: [2, 1, 2]

这个方法把每一步逻辑都拆解开了,适合刚接触Python矩阵操作的朋友理清思路。

方法3:用NumPy库(适合大型数值矩阵)

如果你的矩阵是数值型且数据量较大,用NumPy会更高效,它直接支持按轴计算最大值:

import numpy as np

# 第一个示例
matrix_np = np.array([[0,0,2],[1,0,1],[2,1,0]])
result = matrix_np.max(axis=0).tolist()
print(result)  # 输出: [2, 1, 2]

# 第二个示例
matrix2_np = np.array([[0,0,2],[1,0,1],[2,1,0],[2,1,3]])
result2 = matrix2_np.max(axis=0).tolist()
print(result2)  # 输出: [2, 1, 3]

这里axis=0表示按列计算最大值,tolist()则把NumPy生成的数组转换成普通Python列表,方便后续操作。

内容的提问来源于stack exchange,提问作者Fian Eka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:24:42