Mám multidimenzionálne pole, ktoré by som chcel opakovať Chcem mať prístup nielen k hodnotám, ale aj k ich indexom.Bohužiaľ,
for idx,val in enumerate(my_array):
nezdá sa, že funguje, keď je my_arraymultidimenzionálne. (Ja by som rád idx byť n-tice) .Next pre slučky by mohlo fungovať, ale neviem, koľko rozmerov poľa až do runtime, a ja viem, že to nie je vhodné pre python rovnako. niekoľko spôsobov, ako to urobiť (rekurzia, liberálne využitie operátora%), ale žiadny z nich sa nezdá byť veľmi "python-esque". Existuje jednoduchý spôsob?
odpovede:
7 pre odpoveď č. 1Myslím, že chcete 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)]