Keith Goodman <kwgood...@gmail.com> writes: > On Wed, Apr 14, 2010 at 8:49 AM, Keith Goodman <kwgood...@gmail.com> wrote: >> On Wed, Apr 14, 2010 at 8:16 AM, Nikolaus Rath <nikol...@rath.org> wrote: >>> Hello, >>> >>> How do I best find out the indices of the largest x elements in an >>> array? >>> >>> Example: >>> >>> a = [ [1,8,2], [2,1,3] ] >>> magic_function(a, 2) == [ (0,1), (1,2) ] >>> >>> Since the largest 2 elements are at positions (0,1) and (1,2). >> >> Here's a quick way to rank the data if there are no ties and no NaNs: > > ...or if you need the indices in order: > >>> shape = (3,2) >>> x = np.random.rand(*shape) >>> x > array([[ 0.52420123, 0.43231286], > [ 0.97995333, 0.87416228], > [ 0.71604075, 0.66018382]]) >>> r = x.reshape(-1).argsort().argsort()
I don't understand why this works. Why do you call argsort() twice? Doesn't that give you the indices of the sorted indices? Thanks, -Nikolaus -- »Time flies like an arrow, fruit flies like a Banana.« PGP fingerprint: 5B93 61F8 4EA2 E279 ABF6 02CF A9AD B7F8 AE4E 425C _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion