/ / Itérer sur une matrice numpy de dimension inconnue - python, matrice, numpy, énumérer

Itérer sur la matrice numpy de dimension inconnue - python, matrice, numpy, énumérer

J'ai un tableau numpy multidimensionnel sur lequel je voudrais parcourir. Je veux pouvoir accéder non seulement aux valeurs, mais également à leurs index. Malheureusement,

for idx,val in enumerate(my_array):

ne semble pas fonctionner lorsque my_array estmultidimensionnel. (Je voudrais que idx soit un tuple). Les boucles imbriquées peuvent fonctionner, mais je ne connais pas le nombre de dimensions du tableau jusqu’à l’exécution, et je sais que ce n’est pas approprié pour python. plusieurs façons de le faire (récursivité, utilisation libérale de l'opérateur%), mais aucune d'entre elles ne semble très "python-esque". Existe-t-il un moyen simple?

Réponses:

7 pour la réponse № 1

Je pense que tu veux 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)]