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

如何高效获取numpy二维数组所有元素索引组成的2D数组

解决方案

你可以直接使用Numpy内置的np.indices函数实现需求,无需创建额外的中间占位数组,效率远高于现有方案:

import numpy as np

ourarray = np.array([[0,1],
                     [2,3],
                     [4,5]])

# 核心实现
result = np.indices(ourarray.shape).reshape(2, -1)
print(result)

运行输出和你需要的格式完全一致:

[[0 0 1 1 2 2]
 [0 1 0 1 0 1]]

效率优势说明

你之前使用的np.array(np.where(np.ones(ourarray.shape)))方案,需要先分配一块和原数组大小完全相同的内存存储全1数组,再遍历数组查找所有非零位置。当数组尺寸较大时,额外的内存开销和遍历开销会显著拉高耗时。
而np.indices直接根据数组的形状信息生成对应索引,无额外的占位数组内存占用,生成效率更高,同时该方案也天然支持更高维度的数组索引生成,只需调整reshape的第一个参数为数组维度即可。

如果需要更灵活的索引顺序调整,也可以用np.meshgrid实现等价效果:

row_idx, col_idx = np.meshgrid(np.arange(ourarray.shape[0]), np.arange(ourarray.shape[1]), indexing='ij')
result = np.vstack([row_idx.ravel(), col_idx.ravel()])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 07:42:03