[Numpy-discussion] inconsistent use of axis= keyword argument?

Vidar Gundersen vidar+list at 37mm.no
Thu Feb 23 12:02:02 CST 2006


(i've been updating the cross reference of MATLAB synonymous
commands in Numeric Python to NumPy. I've kept Numeric/numarray
alternatives in the source XML, but omitted it in the PDF outputs.
see, http://37mm.no/download/matlab-python-xref.pdf.
feedback is highly appreciated.)


as i was working on this, i started wondering why 

a.max(0), a.min(0), a.ptp(0), a.flatten(0), ...

does not allow the axis=0 keyword argument used with
the exact same meaning for:

m.mean(axis=0), m.sum(axis=0), ...



and i also wonder why concatenate can't be used to stack 1-d
arrays on top of each other, returning a 2-d array?
axis relates to the number of axes in the original array(s)?

n [3]: v = arange(9)

In [7]: concatenate((v,v))
Out[7]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8])

In [8]: concatenate((v,v),axis=0)
Out[8]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8])

In [15]: concatenate((v,v)).reshape(2,-1)
Out[15]: 
array([[0, 1, 2, 3, 4, 5, 6, 7, 8],
       [0, 1, 2, 3, 4, 5, 6, 7, 8]])


In [5]: m = v.reshape(3,-1)

In [10]: concatenate((m,m))
Out[10]: 
array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8],
       [0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])

In [11]: concatenate((m,m), axis=0)
Out[11]: 
array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8],
       [0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])

In [12]: concatenate((m,m), axis=1)
Out[12]: 
array([[0, 1, 2, 0, 1, 2],
       [3, 4, 5, 3, 4, 5],
       [6, 7, 8, 6, 7, 8]])





More information about the Numpy-discussion mailing list