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

如何获取Python 2.7二维数组中四个最大值的索引?

获取二维数组中前四大值的索引(Python 2.7)

嘿,我来帮你搞定这个需求!在Python 2.7里要提取二维数组中前四个最大值对应的索引,可以按照以下步骤实现:

1. 先定义你的二维数组

首先把你给出的数组用Python列表形式写出来:

ge = [
    [5.854, 7.225, 4.458, 1.834, 0.566, 0.14, 0.029, 0.005, 0.001, 0.0],
    [9.39, 11.588, 7.15, 2.941, 0.907, 0.224, 0.046, 0.008, 0.001, 0.0],
    [7.53, 9.293, 5.734, 2.359, 0.728, 0.18, 0.037, 0.007, 0.001, 0.0],
    [4.026, 4.968, 3.066, 1.261, 0.389, 0.096, 0.02, 0.003, 0.001, 0.0],
    [1.614, 1.992, 1.229, 0.506, 0.156, 0.039, 0.008, 0.001, 0.0, 0.0]
]

2. 生成包含索引和值的组合列表

我们需要把每个元素的行索引、列索引和它的数值绑定在一起,这样排序的时候才能对应上索引。用列表推导式就能轻松实现:

# 遍历每一行和每一列,生成(索引对, 数值)的结构
all_elements = [((i, j), value) for i, row in enumerate(ge) for j, value in enumerate(row)]

3. 按数值从大到小排序

接下来对这个组合列表按数值降序排列,这样最大的元素就会排在最前面:

# 以每个元素的数值为排序依据,reverse=True表示降序
sorted_elements = sorted(all_elements, key=lambda x: x[1], reverse=True)

4. 提取前四个最大值的索引

最后取排序后的前四个元素,把它们的索引对提取出来,如果需要转成列表形式(而不是元组),可以额外做一步转换:

# 提取前四个的索引,转成列表格式
top_four_indices = [list(item[0]) for item in sorted_elements[:4]]

验证结果

运行上面的代码后,打印top_four_indices就能得到你预期的结果:

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

这个方法逻辑清晰,对于你的数组规模来说效率完全足够。如果数组特别大,也可以考虑用堆结构来优化,但目前这个方案简单直接,完全能满足你的需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:58:41