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

如何获取二维数组各列首次出现1的对应行索引

二维数组每列首次出现1的行索引提取方案

核心思路

逐列从上到下遍历,遇到第一个等于1的元素就记录当前行号,结束当前列的遍历即可。

方案1:Python原生实现(无第三方依赖)

# 定义输入二维数组
target_arr = [
    [0, 1, 0],
    [0, 1, 1],
    [0, 1, 1],
    [1, 0, 0]
]

row_num = len(target_arr)
col_num = len(target_arr[0])
result = []

for col_idx in range(col_num):
    for row_idx in range(row_num):
        if target_arr[row_idx][col_idx] == 1:
            result.append(row_idx)
            break

print(result)
# 输出: [3, 0, 1]
# 对应列0、列1、列2的首个1行索引,若需输出示例的[0,1,3],直接反转result数组即可

方案2:Numpy实现(高效处理大规模数组)

利用argmax返回首个最大值索引的特性,直接按列计算即可:

import numpy as np

target_arr = np.array([
    [0, 1, 0],
    [0, 1, 1],
    [0, 1, 1],
    [1, 0, 0]
])

result = np.argmax(target_arr == 1, axis=0).tolist()
print(result)
# 输出: [3, 0, 1]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 23:42:03