[Numpy-discussion] transpose function

Robert Cimrman cimrman3 at ntc.zcu.cz
Tue Feb 14 05:16:01 CST 2006


Just now I have stumbled on a non-intuitive thing with the transpose 
function.

The help says:
"""
Help on function transpose in module numpy.core.oldnumeric:
transpose(a, axes=None)
     transpose(a, axes=None) returns array with dimensions permuted
     according to axes.  If axes is None (default) returns array with
     dimensions reversed.
"""

There are many functions in scipy that accept the 'axis' argument which 
is a single integer number. I have overlooked that here it is 'axes' and 
see what happens (I expected 'flipping' the array around the given 
single axis, well...):

import scipy as nm

In [26]:b = nm.zeros( (3,4) )
In [27]:b
Out[27]:
array([[0, 0, 0, 0],
        [0, 0, 0, 0],
        [0, 0, 0, 0]])

In [29]:nm.transpose( b, 0 )
Out[29]:array([0, 0, 0])

In [30]:nm.transpose( b, 1 )
Out[30]:array([0, 0, 0, 0])

So I propose either to replace 'axes' with 'order' or give an example in 
the docstring. It would be also good to raise an exception when the 
length of the 'axes' argument does not match the array rank and/or does 
not contain a permutation (no repetitions) of relevant indices.

What do the gurus think?

r.





More information about the Numpy-discussion mailing list