4

我有一个要迭代的多维 numpy 数组。我不仅希望能够访问这些值,还希望能够访问它们的索引。很遗憾,

for idx,val in enumerate(my_array):

当 my_array 是多维时似乎不起作用。(我希望 idx 成为一个元组)。嵌套的 for 循环可能会起作用,但直到运行时我才知道数组的维数,而且我知道它不适合 python。我可以想到很多方法来做到这一点(递归、自由使用 % 运算符),但这些方法看起来都不是很“python 式”。有简单的方法吗?

4

1 回答 1

10

我想你想要ndenumerate

>>> import numpy
>>> a = numpy.arange(6).reshape(1,2,3)
>>> a
array([[[0, 1, 2],
        [3, 4, 5]]])
>>> list(numpy.ndenumerate(a))
[((0, 0, 0), 0), ((0, 0, 1), 1), ((0, 0, 2), 2), ((0, 1, 0), 3), ((0, 1, 1), 4), ((0, 1, 2), 5)]
于 2012-07-28T00:49:20.357 回答