[Numpy-discussion] request for new array method: arr.abs()

Sebastian Haase haase at msg.ucsf.edu
Wed Aug 23 22:02:13 EDT 2006


On Wednesday 23 August 2006 18:37, Travis Oliphant wrote:
> David M. Cooke wrote:
> > On Wed, 23 Aug 2006 16:22:52 -0700
> >
> > Sebastian Haase <haase at msg.ucsf.edu> wrote:
> >> On Wednesday 23 August 2006 16:12, Bill Baxter wrote:
> >>> The thing that I find I keep forgetting is that abs() is a built-in,
> >>> but other simple functions are not.  So it's abs(foo), but
> >>> numpy.floor(foo) and numpy.ceil(foo).  And then there's round() which
> >>> is a built-in but can't be used with arrays, so numpy.round_(foo).   
> >>> Seems like it would be more consistent to just add a numpy.abs() and
> >>> numpy.round().
> >>
> >> Regarding the original subject:
> >> a) "absolute" is impractically too much typing and
> >> b) I just thought some (module-) functions might be "forgotten" to be
> >> put in as (object-) methods ... !?
> >
> > Four-line change, so I added a.abs() (three lines for array, one
> > for MaskedArray).
>
> While I appreciate it's proactive nature, I don't like this change
> because it adds another "ufunc" as a method.  Right now, I think conj is
> the only other method like that.
>
> Instead, I like better the idea of adding abs, round, max, and min to
> the "non-import-*" namespace of numpy.
>
How does this compare with
mean, min, max, average
?

BTW: I think me choice is now settled on the builtin  call: abs(arr)
 -- short and sweet.  (As long as it is really supposed to *always* work and 
is not *slow* in any way !?!?!?!?)


Cheers,

Sebastian




More information about the NumPy-Discussion mailing list