首页 > 解决方案 > 获取 N 维数组的所有索引作为列表

问题描述

有没有办法在 Python 中以快速有效的方式获取 N 维数组中所有索引的列表或数组?

例如,图像我们有以下数组:

import numpy as np

test = np.zeros((4,4))

array([[0., 0., 0., 0.],
       [0., 0., 0., 0.],
       [0., 0., 0., 0.],
       [0., 0., 0., 0.]])

我想按如下方式获取所有元素索引:

indices = [ [0,0],[0,1],[0,2] ... [3,2],[3,3] ]

标签: pythonarraysnumpyelementindices

解决方案


使用np.indices一些重塑:

np.indices(test.shape).reshape(2, -1).T

array([[0, 0],  
       [0, 1],  
       [0, 2],  
       [0, 3],  
       [1, 0],  
       [1, 1],  
       [1, 2],  
       [1, 3],  
       [2, 0],  
       [2, 1],  
       [2, 2],  
       [2, 3],  
       [3, 0],  
       [3, 1],  
       [3, 2],  
       [3, 3]])

推荐阅读