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

如何从NumPy三维数组中通过二维坐标列表提取元素?

解决方案

首先需要明确:你提供的img和crds是Python列表,第一步要先转换成NumPy数组,才能利用NumPy的矢量化索引功能实现无循环提取。

实现代码

import numpy as np

# 将原始列表转为NumPy数组
img_np = np.array(img)
crds_np = np.array(crds)

# 提取指定坐标的元素:拆分坐标的行和列索引
result = img_np[crds_np[:, 0], crds_np[:, 1]]

print(result)

代码说明

  • crds_np[:, 0]提取所有坐标的行索引(即[1, 2]),crds_np[:, 1]提取所有坐标的列索引(即[3, 2])
  • NumPy的高级索引支持用两个一维数组分别索引多维数组的前两个维度,会自动将对应位置的索引配对((1,3)和(2,2)),直接提取每个配对位置的三维元素,最终得到你需要的形状为(2,3)的结果数组。

输出结果

[[ 99. 141. 153.]
 [121. 185. 158.]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 16:06:42