Could numpy.matlib.nanmax return a matrix?

Pierre GM pgmdevlist at gmail.com
Sun Nov 12 17:08:50 CST 2006


On Sunday 12 November 2006 17:08, A. M. Archibald wrote:
> On 12/11/06, Keith Goodman <kwgoodman at gmail.com> wrote:
> > Is anybody interested in making x.max() and nanmax() behave the same
> > for matrices, except for the NaN part? That is, make
> > numpy.matlib.nanmax return a matrix instead of an array.

Or, you could use masked arrays... In the new implementation, you can add a 
mask to a subclassed array (such as matrix) to get a regular masked array. If 
you fill this masked array, you get an array of the same subclass.

>>> import numpy as N
>>> import numpy.matlib as M
>>> import maskedarray as MA
>>> x=M.rand(3,3)
>>> assert isinstance(x.max(0), M.matrix)
>>> assert isinstance(N.max(x,0), M.matrix)
>>> assert  isinstance(MA.max(x,0).filled(0), M.matrix)
>>> assert isinstance(MA.max(x,0)._data, M.matrix)

>>> x[-1,-1] = N.nan
>>> tmp = MA.max(MA.array(x,mask=N.isnan(x)), 0)
>>> assert (tmp == N.nanmax(x,0)).all()
>>> assert isinstance(tmp.filled(0), M.matrix)

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642




More information about the Numpy-discussion mailing list