Wie bekomme ich die Indizes der N maximale Werte in ein NumPy-array?

NumPy schlägt vor, eine Möglichkeit, um den index der maximale Wert eines array über np.argmax.

Möchte ich eine ähnliche Sache, aber wieder werden die Indizes der N maximale Werte.

Wenn ich beispielsweise ein array, [1, 3, 2, 4, 5], function(array, n=3) zurückkehren würde, die Indizes [4, 3, 1] entsprechen die Elemente [5, 4, 3].

  • möglich, Duplikat der python+numpy: effiziente Weg, um die min/max-n-Werte und Indizes, die aus einer matrix
  • Ihre Frage ist nicht wirklich gut definiert. Zum Beispiel, was würden die Indizes (erwartet) werden für array([5, 1, 5, 5, 2, 3, 2, 4, 1, 5]) -, Pfingst -n= 3? Was man von all den alternativen, wie [0, 2, 3], [0, 2, 9], ... wäre die richtige? Bitte erläutern Sie mehr über Ihre spezifischen Anforderungen. Dank
  • Ich weiß nicht wirklich, über was soll zurückgegeben werden, in diesem speziellen Fall. Auch wenn es logisch erscheinen, geben Sie die ersten begegnete, das ist keine Voraussetzung für mich.
  • argsort könnte eine sinnvolle alternative sein, wenn Sie kümmern sich nicht um die Reihenfolge der zurückgegebenen indeces. Siehe meine Antwort unten.
Schreibe einen Kommentar