如何获取二维数组中每行的最大值?附示例二维数组
如何获取二维数组中每行的最大值?
嘿,这个问题我经常碰到,给你几个实用的解决思路,结合你给出的二维数组例子来演示~
方法1:Python内置函数(简洁直观,适合小到中等规模数组)
直接用列表推导式搭配max()函数,这是最常用的方式,代码短还容易理解:
# 你的二维数组(补全了最后一行的省略部分,假设是类似结构) arr = [ [0.0, 0.24320757858085434, 0.14893361727523413, 0.29786723455046826, 0.18838778030301612, 0.12160378929042717], [0.23717478210768014, 0.0, 0.16770789675478251, 0.20539938644228997, 0.25981195646349819, 0.1299059782317491], [0.21681956134183847, 0.250361664212574, 0.0, 0.23178986094050727, 0.16390018248131957, 0.13712873102376066], [0.2933749527592357, 0.20744741852633861, 0.15681550844086434, 0.0, 0.18554661183269694, 0.15681550844086434], [0.2030581, 0.189234, 0.276543, 0.0, 0.221098, 0.110066] ] # 遍历每行取最大值 row_maxes = [max(row) for row in arr] print(row_maxes)
运行后会得到每行最大值组成的列表:[0.29786723455046826, 0.25981195646349819, 0.250361664212574, 0.2933749527592357, 0.276543]
方法2:使用NumPy库(高效处理大规模数组)
如果你的二维数组非常大,用NumPy会更高效,而且语法也很简洁:
import numpy as np # 转成NumPy数组 arr_np = np.array(arr) # axis=1 表示沿着行的方向取最大值 row_maxes_np = arr_np.max(axis=1) print(row_maxes_np) # 要是需要转成普通Python列表,用tolist() print(row_maxes_np.tolist())
额外注意事项
- 如果数组里可能存在空行,直接用
max()会报错,可以加个判断处理:
这样空行会返回row_maxes = [max(row) if row else None for row in arr]None,避免程序崩溃。 - 确保每行里的元素都是可比较的数值类型(比如int、float),不然
max()会抛出类型错误。
内容的提问来源于stack exchange,提问作者btloseltwin
相关产品推荐
相关产品推荐

