[Numpy-discussion] Getting the indexes of the myarray.min()
Tim Hochberg
tim.hochberg at cox.net
Wed May 12 14:34:05 CDT 2004
Álvaro Tejero Cantero wrote:
>Hello,
>
>
>
>>To find the index of ONE minimum value is easy,
>>though it is buried in the nd_image sub-package
>>(where many users might miss it):
>>numarray.nd_image.minimum_position
>>
>>
>
>It works great... but what about efficiency? If I do times.min() and
>then numarray.nd_image.minimum_positioan(times) I am running twice
>essentially the same extremum-finding routine, which is prohibitibe for
>large N..., am I right?
>
>Which makes me thing of a more general question: I know that some of the
>array functions are coded in C for speed, but what about the classical
>python-for loop, as in (r Nx3 array of particle positions)
>
>[ [r[i]-r[j] for i in arange(N)] for j in arange(N)]
>
>is this handled to C code?
>
>
Try this:
>>> import numarray as na
>>> r = na.arange(5)
>>> na.subtract.outer(r, r)
array([[ 0, -1, -2, -3, -4],
[ 1, 0, -1, -2, -3],
[ 2, 1, 0, -1, -2],
[ 3, 2, 1, 0, -1],
[ 4, 3, 2, 1, 0]])
Look up the special methods on ufuncs (outer, reduce, etc) for more details.
>>I do not know a clean way to find all locations
>>of the minimum value. I hope somebody else does.
>>
>>
>
>Yes... although for the problem at hand that motivated my query, my
>times matrix is symmetric... I don't really need all the minima, but
>does numarray have any special datatype for symmetric matrixes, that
>prevents storage of unneded (e.g. supradiagonal) elements?.
>
>
Not that I know of.
-tim
>
>Thank you very much, I'm on my way to get some beautiful code out of old
>fortranisms
>
>á.
>
>
More information about the Numpy-discussion
mailing list