[Numpy-discussion] numpy.matlib.abs

Keith Goodman kwgoodman at gmail.com
Tue Feb 6 09:43:48 EST 2007


On 2/6/07, Paulo J. S. Silva <pjssilva at ime.usp.br> wrote:
> Em Dom, 2007-02-04 às 17:28 -0800, Keith Goodman escreveu:
>
> > Could numpy.matlib get the same functions as numpy? Would that have to
> > be done with a manually maintained import list?
> > I always use "import numpy.matlib as M" and then search for function
> > names in ipython (M.a[TAB]). I didn't realize that some functions are
> > missing.
>
> As the list knows, I am trying to build a special module that can
> convert any other module to behave nicely with matrices. I have special
> interest in using it as an interface to scipy modules that may return
> arrays when given a matrix. This effort let me to learn some tricks
> about modules imports in Python.
>
> I believe that if you add the following code to the end of matlib.py
> file it will behave just like you want without any manual intervention:
>
> --- Start Python code ---
>
> import inspect
> import matlib as M
> for i in dir(N):
>     attribute = getattr(N, i)
>     if type(attribute) is N.ufunc or inspect.isroutine(attribute):
>         try:
>             getattr(M, i)
>         except AttributeError:
>             setattr(M, i, attribute)
>
> --- End Python code ---
>
> Here is an ipython session:
>
> --- ipython session ---
>
> In [1]:import numpy.matlib as M
>
> In [2]:M.abs
> Out[2]:<ufunc 'absolute'>
>
> --- End of ipython sesssion ---
>
> By the way, there were only four functions that are missing without this
> code: abs, max, min, and round. You can see this by adding a "print i"
> in the except block above.
>
> If the list thinks this code is useful, I am donating it to numpy.

That is great.

I could think of a few uses for abs, max, min, and round. So I would
like to see them imported.

BTW, why can I do

x.max()
x.min()
x.round()

but not

x.abs()?



More information about the NumPy-Discussion mailing list