【发布时间】:2012-11-07 15:48:36
【问题描述】:
我正在尝试将完整的索引集提取到一个 N 维立方体中,似乎 np.mgrid 正是我所需要的。例如,np.mgrid[0:4,0:4] 生成一个 4 x 4 矩阵,其中包含相同形状数组中的所有索引。
问题是我想根据另一个数组的形状在任意数量的维度上执行此操作。 IE。如果我有一个任意维度的数组a,我想做类似idx = np.mgrid[0:a.shape] 的操作,但不允许使用这种语法。
是否可以构造我需要的切片以使np.mgrid 工作?或者是否有其他一些优雅的方式来做到这一点?以下表达式可以满足我的需要,但它相当复杂,可能效率不高:
np.reshape(np.array(list(np.ndindex(a.shape))),list(a.shape)+[len(a.shape)])
【问题讨论】: