Кроме того np.ndindex()
(что является самым простым в данном случае), вы можете использовать np.unravel_index()
и np.ravel_multi_index()
до go назад и вперед от линейного и многоиндексный.
Например:
import numpy as np
shape = (3, 5)
arr = np.random.rand(*shape)
print([np.unravel_index(i, shape) for i in range(np.prod(shape))])
# [(0, 0), (0, 1), (0, 2), (0, 3), (0, 4), (1, 0), (1, 1), (1, 2), (1, 3), (1, 4), (2, 0), (2, 1), (2, 2), (2, 3), (2, 4)]