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

如何基于给定数组的元素值查找二维numpy数组的对应位置索引

Numpy 匹配指定元素查找行列索引解决方案

首先给出可直接运行的实现代码:

import numpy as np

# 示例输入数组
A = np.array([[1, 4, 3, 0, 5],[6, 0, 7, 12, 11],[20, 15, 34, 45, 56]])
B = np.array([[4, 5, 6, 7]])

# 核心逻辑
B_flat = B.ravel() # 将B转为一维数组,适配匹配规则
match_mask = np.isin(A, B_flat) # 生成和A形状一致的布尔掩码,匹配到元素的位置为True
row_idx, col_idx = np.where(match_mask) # 提取所有匹配位置的行、列索引
C = np.column_stack((row_idx, col_idx)) # 拼接为要求的输出结构

print(C)

运行后输出结果和你给出的示例完全一致:

[[0 1]
 [0 4]
 [1 0]
 [1 2]]

相关说明:

  • 如果B本身就是一维数组,可以省略ravel()步骤,加这步是为了兼容你示例中B是二维行向量的场景
  • 如果你需要输出为Python原生列表而非numpy数组,在最后追加C = C.tolist()即可
  • 整个实现基于numpy向量化操作,即使A、B数据规模很大,运行效率也远高于手动循环遍历的方案

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 04:54:03