2012-07-04 3 views

Répondre

9

Si vous avez seulement besoin d'un ou l'autre:

np.argmax(np.max(x, axis=1)) 

pour la colonne, et

np.argmax(np.max(x, axis=0)) 

pour la rangée.

7

Vous pouvez utiliser np.where(x == np.max(x)).

Par exemple:

>>> x = np.array([[1,2,3],[2,3,4],[1,3,1]]) 
>>> x 
array([[1, 2, 3], 
     [2, 3, 4], 
     [1, 3, 1]]) 
>>> np.where(x == np.max(x)) 
(array([1]), array([2])) 

la première valeur est le numéro de ligne, le second numéro est le numéro de colonne.

5

Vous pouvez utiliser np.argmax avec np.unravel_index comme dans

x = np.random.random((5,5)) 
print np.unravel_index(np.argmax(x), x.shape) 
1

np.argmax renvoie simplement l'index du (premier) élément le plus grand dans le tableau aplati. Donc, si vous connaissez la forme de votre tableau (ce que vous faites), vous pouvez facilement trouver les indices de ligne/colonne:

A = np.array([5, 6, 1], [2, 0, 8], [4, 9, 3]) 
am = A.argmax() 
c_idx = am % A.shape[1] 
r_idx = am // A.shape[1] 
Questions connexes