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

如何用Numpy高效实现:基于2D索引从3D数组提取值生成2D数组

高效Numpy实现方案

直接用Numpy的高级索引就能高效完成这个任务,完全避免Python层面的循环,利用底层C实现的向量操作处理大规模数据:

  • 生成与max_chs同形状的y、x维度网格索引
  • 结合max_chs作为z维度索引,直接从objects中提取对应位置的值

具体代码示例:

import numpy as np

# 生成y、x方向的网格索引(假设max_chs的shape为(y, x),对应objects的后两个维度)
y_idx, x_idx = np.indices(max_chs.shape)
# 高级索引提取结果,最终得到shape为(y, x)的2D数组
result = objects[max_chs, y_idx, x_idx]

原理说明

Numpy的高级索引会将三个索引数组(max_chs、y_idx、x_idx)对应位置的元素组合成索引元组,一次性完成所有位置的取值操作,效率远高于逐元素循环。这种方式完全适配大规模数据场景,不会出现Python循环的性能瓶颈。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 02:47:38