Ho un array 3D in Python e ho bisogno di scorrere tutti i cubi dell'array. Cioè, per tutti (x,y,z)
nelle dimensioni della matrice ho bisogno di accedere al cubo:Modo iterativo Python per l'array 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)]
La matrice è una matrice Numpy, anche se questo non è davvero necessario. Ho appena trovato molto facile leggere i dati con un one-liner usando numpy.fromfile()
.
C'è qualche altro modo Pythonico per scorrere su questi rispetto al seguente? Sembra semplicemente C usando la sintassi di 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)])
Sarà questa risposta da http : //stackoverflow.com/questions/1280667/in-python-is-there-an-easier-way-to-write-6-nested-for-loops? – tom10
Quello sarebbe range (...- 1), qui ... – EOL
In realtà, si @ tom10, risponde alla domanda –