[Numpy-discussion] flatindex

Glen W. Mabey Glen.Mabey at swri.org
Thu May 31 13:28:06 EDT 2007


On Thu, May 31, 2007 at 11:05:52AM -0600, Travis Oliphant wrote:
> Tobias Knopp wrote:
> 
> >Hi!
> >
> >I was looking for a method to find the indices of the smallest element
> >of an 3-dimensional array a. Therefore i used
> >
> >a.argmax()
> >
> >The problem was, that argmax gives me a flat index. My question is, if
> >there is a build-in function to convert the flat index back to a
> >multidimensional one. I know how to write such a procedure but was
> >curious if one exists in numpy.
> See
> 
> numpy.unravel_index

When I first learned that the value returned by the argmax() function
consists of a ravel()ed index (when axis is not specified), I was
told that it makes perfect sense in that it is consistent with the behavior
of max() and other functions that assume a ravel()ed behavior when axis
isn't specified.

While I have to agree that it does make sense (some note of this
behavior should probably be added to the docstrings ... ), I also feel
that is it not intuitive, and will almost universally lead to confusion
(initially) for those who use it.

One could even argue that a ravel()ed index is not correct, in that it
cannot [immediately] be used as an argument that references the
indicated element.

Whadaya think?

Glen



More information about the NumPy-Discussion mailing list