Mam wielowymiarową tablicę numpy, którą chciałbym iterować, chcę mieć dostęp do nie tylko wartości, ale także ich indeksów.
for idx,val in enumerate(my_array):
nie wydaje się działać, gdy my_array jestwielowymiarowy. (Chciałbym, aby idx był krotką) .Zasilane dla pętli może działać, ale nie znam liczby wymiarów tablicy do czasu wykonania, i wiem, że nie jest ona odpowiednia dla pythona. wiele sposobów na to (rekursja, liberalne użycie operatora%), ale żaden z nich nie wydaje się bardzo "python-esque". Czy istnieje prosty sposób?
Odpowiedzi:
7 dla odpowiedzi № 1Myślę, że chcesz 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)]