J'ai un tableau 3D en Python et j'ai besoin de parcourir tous les cubes du tableau. C'est, pour tous (x,y,z)
dans les dimensions du tableau I ont besoin d'accéder au cube:Python d'itération sur un tableau 3D
array[(x + 0, y + 0, z + 0)]
array[(x + 1, y + 0, z + 0)]
array[(x + 0, y + 1, z + 0)]
array[(x + 1, y + 1, z + 0)]
array[(x + 0, y + 0, z + 1)]
array[(x + 1, y + 0, z + 1)]
array[(x + 0, y + 1, z + 1)]
array[(x + 1, y + 1, z + 1)]
Le tableau est un tableau numpy, bien que ce n'est pas vraiment nécessaire. Je l'ai trouvé très facile à lire les données avec un one-liner en utilisant numpy.fromfile()
.
Existe-t-il un moyen plus pythonique d'itérer sur ces éléments que les suivants? Cela ressemble simplement à C en utilisant la syntaxe Python.
for x in range(x_dimension):
for y in range(y_dimension):
for z in range(z_dimension):
work_with_cube(array[(x + 0, y + 0, z + 0)],
array[(x + 1, y + 0, z + 0)],
array[(x + 0, y + 1, z + 0)],
array[(x + 1, y + 1, z + 0)],
array[(x + 0, y + 0, z + 1)],
array[(x + 1, y + 0, z + 1)],
array[(x + 0, y + 1, z + 1)],
array[(x + 1, y + 1, z + 1)])
aura-t-il être répondu par http : //stackoverflow.com/questions/1280667/in-python-is-there-an-easier-way-to-write-6-nested-for-loops? – tom10
Ce serait la gamme (...- 1), ici ... – EOL
En fait, oui @ tom10, il répond à la question –