[Numpy-discussion] Find indices of largest elements

eat e.antero.tammi at gmail.com
Thu Apr 15 18:44:06 EDT 2010


Nikolaus Rath <Nikolaus <at> rath.org> writes:

[snip]
> Not quite, because I'm interested in the n largest values over all
> elements, not the largest element in each row or column. But Keith's
> solution seems to work fine, even though I'm still struggling to
> understand what's going on there .

My bad. I just concentrated on your example, not the actual question.

However, what's wrong with your above approach
"[ np.unravel_index(i, x.shape) for i in idx[-3:] ]" ?

Especially if your n largest elements are just a small fraction of all 
elements.

# Note also the differencies
a= np.asarray([[1, 8, 2], [2, 3, 3], [3, 4, 1]])
n= 3
# between
print [np.unravel_index(ind, a.shape) for ind in np.argsort(a.ravel())[-n:]]
# and
print [np.where(val== a) for val in np.sort(a.ravel())[-n:]]


Regards,
eat
> 
> Best,
> 
>    -Nikolaus
> 







More information about the NumPy-Discussion mailing list