Not sure what you mean, but the reason is simple that NpyIter will try to optimize for the memory order. Basically, if the indexing array and the value array are Fortran order, you will definetly iterate them in fortran order (all other cases depend on the exact NpyIter behaviour).