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

如何将二维numpy数组元素作为另一个numpy数组的索引取值

用二维Numpy数组作为多维度索引的实现方法

你只需要将二维数组a转换为元组后传入索引即可,这是因为Numpy在接收元组作为索引参数时,会自动将元组的每个元素对应到数组的不同维度进行高级索引,完全符合你需要的效果。

正确实现代码

import numpy as np

# 你的原数组
a = np.array([
    [1, 2],
    [0, 2],
])
b = np.random.randn(5, 5)

# 替换硬编码索引的写法
c = b[tuple(a)]

结果验证

你可以和硬编码的结果做一致性校验:

c_hardcode = b[[1, 2], [0, 2]]
print(np.array_equal(c, c_hardcode)) # 输出为True,说明两者结果完全一致

补充场景

如果你的二维数组a的结构是每行存储一个坐标点(即a = [[行索引1, 列索引1], [行索引2, 列索引2]]),只需要先对a做转置再转元组即可:

# 示例a结构为每行一个坐标
a = np.array([[1,0], [2,2]])
c = b[tuple(a.T)]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 17:54:00