Thanks for the explanations, folks, I thought that might be the case.
On 9/23/06, Sebastian Haase
I'm working with "stacks of 2d arrays" -- but I was always under the impression that -- since the last axis is the "fastest" -- "stacks of <something>" should stack in the first dimension -- not the last --so that the members of the stack still remain contiguous is memory.
I also don't see why you'd want to stack matrices along the last axis in numpy. C-style memory order is one reason not to, but printing as well seems to favor stacking matrices along the first (0th) axis instead of the last.
Is there a general consensus on how one should look at this ? Or are there multiple incompatible view -- maybe coming from different fields -- ?
I've beed stacking along the first axis myself. Perhaps the original folks who implemented atleast_3d were coming from Matlab, where stacking is generally done along the last axis. But everything in Matlab is Fortran order under the hood so it makes sense there. Anyway, glad to know it was just the implementer's idiosyncracy rather than some deep secret of the universe that I wasn't aware of. I sometimes wonder what sort of overhead is induced by numpy using primarily C-style while many of the underlying algorithms we use are in Fortran. I suspect f2py has to do a lot of copying to get things in the right order for making the calls to Fortran. --bb