[Numpy-discussion] max argmax combo

Charles R Harris charlesr.harris at gmail.com
Mon Sep 18 23:05:42 CDT 2006

On 9/18/06, Bill Baxter <wbaxter at gmail.com> wrote:
> On 9/19/06, Charles R Harris <charlesr.harris at gmail.com> wrote:
> > On 9/18/06, Bill Baxter <wbaxter at gmail.com> wrote:
> > > I find myself often wanting both the max and the argmax of an array.
> > > (And same for the other arg* functions)
> > > You have to do something like
> > >     a = rand(10,5)
> > >     imax = a.argmax(axis=0)
> > >     vmax = a[(imax, range(5))]
> > >
> > I don't generally like overloading return values, the function starts to
> > lose its definition and becomes a bit baroque where simply changing a
> > keyword value can destroy the viability of the following code.
> Agreed.  Seems like the only justification is if you get multiple
> results from one calculation but only rarely want the extra values.
> It doesn't make sense to always return them, but it's also not worth
> making a totally different function.
> > But I can see the utility of what you want. Hmm,  this problem is not
> unique to argmax.
> > Maybe what we need is a general way to extract values, something like
> >
> > extract(a, imax, axis=0)
> >
> > to go along with all the single axis functions.
> Yes, I think that would be easier to remember.
> It should also work for the axis=None case.
>   imax = a.argmax(axis=None)
>   v = extract(a, imax, axis=None)

It shouldn't be too difficult to jig something up given all the example
code. I can do that, but I would like more input first. The questions I have
are these.

1) Should it be done?
2) Should it be a method? (functions being somewhat deprecated)
3) What name should it have?

I think Travis will have to weigh in on this. IIRC, he felt that the number
of methods was getting out of hand.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://projects.scipy.org/pipermail/numpy-discussion/attachments/20060918/86b7e810/attachment.html 

More information about the Numpy-discussion mailing list