In [65]: a = np.arange(6).reshape(2,3)
In [66]: for x in np.nditer(a, flags=['external_loop'], order='F'):
...: print(x, end=' ')
...:
[0 3] [1 4] [2 5]
When changing the shape of the input array to (1, 3) however, this doesn’t yield what I am hoping for any more (essentially [0], [1] [2]):
In [68]: for x in np.nditer(a, flags=['external_loop'], order='F'):
...: print(x, end=' ')
...:
[0 1 2]
I suspect this may have to do with the fact that the (1, 3) array is both C and F contiguous, and it is trying to return as large of a 1D F-contiguous array as it can. However, I didn’t see any way to really force it to go by columns. My best guess was the itershape argument though I couldn’t figure out how to get that to work and didn’t see much in the documentation.