Come posso ottenere la posizione dell'elemento più grande in un array numpy multidimensionale?Python: ottieni la posizione dell'elemento più grande in un array numpy
risposta
Il metodo argmax()
dovrebbe essere d'aiuto.
Aggiornamento
(Dopo aver letto commenti) Credo che il metodo di argmax()
avrebbe funzionato per gli array multidimensionali pure. La documentazione collegata fornisce un esempio di questo:
>>> a = array([[10,50,30],[60,20,40]])
>>> maxindex = a.argmax()
>>> maxindex
3
Aggiornamento 2
(Grazie a KennyTM 's commento) È possibile utilizzare unravel_index(a.argmax(), a.shape)
per ottenere l'indice come una tupla:
>>> from numpy import unravel_index
>>> unravel_index(a.argmax(), a.shape)
(1, 0)
(modifica) Mi riferivo a una vecchia risposta che era stata cancellata. E la risposta accettata è arrivata dopo la mia. Sono d'accordo che argmax
è meglio della mia risposta.
Non sarebbe più leggibile/intuitivo fare così?
numpy.nonzero(a.max() == a)
(array([1]), array([0]))
Oppure,
numpy.argwhere(a.max() == a)
Inutile lento, perché calcoli il massimo e poi lo confronti a tutti di a. unravel_index (a.argmax(), a.shape). – Peter
Ho votato a favore perché non presuppone nulla sul numero di occorrenze di a.max() in a. Mentre a.argmax() restituirà la "prima" occorrenza (che è mal definita nel caso di una matrice multidimensionale poiché dipende dalla scelta del percorso trasversale). https://docs.scipy.org/doc/numpy/reference/generated/numpy.argmax.html#numpy.argmax Penso anche che np.where() sia una scelta più naturale/leggibile piuttosto che np.nonzero(). – FizxMike
- 1. Python crea un sotto-array più piccolo da un array NumPy 2D più grande?
- 2. Numpy array: sequenza troppo grande
- 3. Grande su disk array per numpy
- 4. efficiente array python per la conversione di numpy array
- 5. Ottieni la chiave più grande in un dizionario
- 6. Ottieni la tua posizione tramite python
- 7. Ottenere la media di più assi di un array numpy
- 8. Vectorize grande moltiplicazione NumPy
- 9. Python - Modo efficiente per trovare l'area più grande di un valore specifico in un array numpy 2D
- 10. Come "incorporare" una piccola matrice numpy in un blocco predefinito di un grande array numpy?
- 11. Trova un array all'interno di un altro array più grande
- 12. Creare array NumPy verticali in Python
- 13. Numpy: ottieni array 1D come array 2D senza rimodellare
- 14. inizializzare un array di NumPy
- 15. Come convertire la lista di array numpy in un singolo array numpy?
- 16. C'è un modo conveniente per applicare una tabella di ricerca a un grande array in numpy?
- 17. Python, array di ordinamento numpy
- 18. Come convertire un set python in un array numpy?
- 19. Normalizza colonne di array numpy in python
- 20. trova la posizione dei picchi in uno spettro numpy
- 21. algoritmo per trovare il più grande calo in un array
- 22. Trova il prossimo elemento più grande in un array
- 23. Trova la posizione dell'immagine all'interno di un'immagine più grande
- 24. python, numpy; Come inserire un elemento all'inizio di un array
- 25. Come normalizzare un array numpy bidimensionale in python meno dettagliato?
- 26. Converti stringa in array numpy
- 27. Aggiungi un array NumPy a un array NumPy
- 28. Python: scrivere un file wav in numpy float array
- 29. Come si può rimuovere in modo efficiente un intervallo di righe da un grande array numpy?
- 30. Ottieni un elenco di tutti gli indici di elementi ripetuti in un array numpy
ma ho un array multidimensionale. – kame
@kame: risposta aggiornata. Vedi sopra. –
Usa 'unravel_index (a.argmax(), a.shape)' per ottenere l'indice come una tupla. – kennytm