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

Python中根据列表元素定位数组元素并获取对应值

解决Numpy数组匹配索引并提取对应元素的问题

你原来的代码把原数组A给覆盖了,根本没用到它来做匹配。下面是修正后的代码,能实现你要的需求:

import numpy as np

A = np.array([[0, 4],
              [0, 5],
              [1, 6]])

B = np.array([[9.16435586e-05],
              [1.84193464e-14],
              [1.781909182e-5]])

indices = [[0, 4], [1, 6]]

# 输出原indices列表
print(indices)

# 提取B中对应元素
result_B = []
for idx in indices:
    # 逐行匹配A中的元素,找到和idx完全一致的行
    match_mask = np.all(A == idx, axis=1)
    # 提取B中对应行的元素,加入结果列表
    result_B.append(B[match_mask].tolist())

# 输出整理后的B结果
print(result_B)

输出结果:

[[0, 4], [1, 6]]
[[[9.16435586e-05]], [[1.781909182e-05]]]

关键说明:

  • 避免覆盖原数组A:循环里用idx代替原来的A变量,保留原数组用于匹配
  • np.all(A == idx, axis=1):按行判断A的每一行是否和idx完全一致,返回布尔数组标记匹配行
  • 用布尔数组match_mask索引B,提取对应行的元素,再转成列表格式和期望输出对齐

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 13:51:14