Wie kann ich die Position (Indizes) des größten Werts in einem mehrdimensionalen NumPy-Array ermitteln?
Antworten:
Die argmax()
Methode sollte helfen.
Aktualisieren
(Nach dem Lesen des Kommentars) Ich glaube, die argmax()
Methode würde auch für mehrdimensionale Arrays funktionieren. Die verknüpfte Dokumentation gibt ein Beispiel dafür:
>>> a = array([[10,50,30],[60,20,40]])
>>> maxindex = a.argmax()
>>> maxindex
3
Update 2
(Dank KennyTMs Kommentar) Sie können unravel_index(a.argmax(), a.shape)
den Index als Tupel abrufen :
>>> from numpy import unravel_index
>>> unravel_index(a.argmax(), a.shape)
(1, 0)
unravel_index(a.argmax(), a.shape)
diese Option , um den Index als Tupel abzurufen.
(bearbeiten) Ich bezog mich auf eine alte Antwort, die gelöscht worden war . Und die akzeptierte Antwort kam nach meiner. Ich stimme zu, das argmax
ist besser als meine Antwort.
Wäre es nicht lesbarer / intuitiver, dies zu tun?
numpy.nonzero(a.max() == a)
(array([1]), array([0]))
Oder,
numpy.argwhere(a.max() == a)
Eine alternative Möglichkeit ist die Veränderung numpy
Array list
und die Verwendung max
und index
Methoden:
List = np.array([34, 7, 33, 10, 89, 22, -5])
_max = List.tolist().index(max(List))
_max
>>> 4