2016-05-29 5 views
0

Ich versuche, die Indizes des Maximalwerts in einer Matrix zu erhalten, mit Argwhere-Funktion. Ich bin mit dieser Syntax:Verwenden von np.argwhere, um das Maximum in einer Matrix zu finden

where = np.argwhere(np.argmax(matrix)) 

wo Matrix ist die Matrix ich verwende, und ich will, wo ein Tupel sein, die mir die Koordinaten des Maximalwertes gibt. Aber wo Drucke als [0] und nicht (0, col), wie ich wollte (bekomme ich nur die Zeile, aber nicht den col)

+0

Ich glaube nicht, dass Sie das 'np.argwhere' Anruf benötigen. Ist 'np.argmax', alleine, nicht das, was du willst? – farenorth

Antwort

4

np.argmax(arr) standardmäßig gibt den Index des Maximalwertes in die abgeflachte Array , arr.ravel().

Um den Index des Maximalwerts von arr zu erhalten selbst, verwenden np.unravel_index:

In [15]: np.random.seed(2016); arr = np.random.randint(10, size=(2,3)); arr 
Out[15]: 
array([[3, 7, 2], 
     [3, 8, 4]]) 
In [17]: np.argmax(arr) 
Out[17]: 4 
In [18]: np.unravel_index(np.argmax(arr), arr.shape) 
Out[18]: (1, 1) 
+0

Genau das, was ich brauchte! – Eyzuky

Verwandte Themen