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

如何使用二维坐标数组在NumPy中选取二维数组元素?

NumPy二维数组的索引数组取值

可以实现,以下是几种常见的实现方式:

  • 拆分索引为行、列维度:将形状为(20,2)的inx拆分为两个一维数组,分别作为行索引和列索引传入:
import numpy as np

# 创建3x3的示例数组x
x = np.array([[1,2,3],
              [4,5,6],
              [7,8,9]])
# 生成20x2的坐标索引数组inx
inx = np.random.randint(0, 3, size=(20,2))

# 提取对应位置元素,得到(20,)形状的数组
result = x[inx[:, 0], inx[:, 1]]
print(result.shape)  # 输出 (20,)
  • 转置索引数组后转为元组:利用NumPy的索引规则,将转置后的索引数组转为元组,写法更简洁:
result = x[tuple(inx.T)]
print(result.shape)  # 输出 (20,)
  • 使用np.take_along_axis方法:通过调整索引数组的形状,配合该方法提取元素:
# 将inx转为(20,1,2)的形状以匹配x的维度
result = np.take_along_axis(x, inx[:, None, :], axis=(0,1)).flatten()
print(result.shape)  # 输出 (20,)

以上方式都能从(3,3)的数组x中,通过(20,2)的坐标索引数组inx,得到形状为(20,)的结果数组,每个元素对应x中对应坐标位置的值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 21:39:55