V mnogih primerih, kjer je velikost matrike prevelika, traja preveč časa, da iz njih najdemo največje število elementov. V ta namen modul numpy v Pythonu ponuja funkcijo, imenovano numpy.argmax() . Ta funkcija vrne indekse največjih vrednosti, vrnjenih skupaj z navedeno osjo.
Sintaksa:
numpy.argmax(a, axis=None, out=None)
Parametri
x: array_like
Ta parameter določa izvorno polje, katerega največjo vrednost želimo vedeti.
java filter tok
os: int (neobvezno)
Ta parameter določa os, vzdolž katere je prisoten indeks, privzeto pa je v sploščeni matriki.
out: array (izbirno)
Ta parameter določa ndarray, v katerega bo vstavljen rezultat. Ta bo enake vrste in oblike, ki je primerna za shranjevanje rezultata
pretvori niz v enum
Vračila
Ta parameter definira ndarray, ki vsebuje indekse matrike. Oblika je enaka kot x.oblika z odstranjeno dimenzijo vzdolž osi.
Primer 1:
Import numpy as np x = np.arange(20).reshape(4,5) + 7 x y=np.argmax(a) y
Izhod:
array([[ 7, 8, 9, 10, 11], [12, 13, 14, 15, 16], [17, 18, 19, 20, 21], [22, 23, 24, 25, 26]]) 19
V zgornji kodi
- Uvozili smo numpy z vzdevkom np.
- Ustvarili smo niz 'x' uporabo np.arange() funkcijo z obliko štirih vrstic in petih stolpcev.
- Dodali smo tudi 7 v vsak element matrike.
- Spremenljivko smo deklarirali 'in' in dodelil vrnjeno vrednost np.argmax() funkcijo.
- Prešli smo niz 'x' v funkciji.
- Nazadnje smo poskušali natisniti vrednost 'in' .
V izhodu prikazuje indekse največjega elementa v matriki.
Primer 2:
Import numpy as np x = np.arange(20).reshape(4,5) + 7 y=np.argmax(x, axis=0) z=np.argmax(x, axis=1) y z
Izhod:
array([3, 3, 3, 3, 3], dtype=int64) array([4, 4, 4, 4], dtype=int64)
Primer 3:
Import numpy as np x = np.arange(20).reshape(4,5) + 7 indices = np.unravel_index(np.argmax(x, axis=None), x.shape) indices x[indices]
Izhod:
tipkopis foreach
(3, 4) 26
Primer 4:
import numpy as np a = np.array([[5,2,1], [3,7,9],[0, 4, 6]]) index_arr = np.argmax(a, axis=-1) index_arr # Same as np.max(a, axis=-1, keepdims=True) result = np.take_along_axis(a, np.expand_dims(index_arr, axis=-1), axis=-1) result1 # Same as np.max(a, axis=-1) result = np.take_along_axis(a, np.expand_dims(index_arr, axis=-1), axis=-1).squeeze(axis=-1) result2
Izhod:
array([[0], [2], [2]]) array([5, 9, 6])
V zgornji kodi
- Uvozili smo numpy z vzdevkom np.
- Ustvarili smo večdimenzionalni niz 'a ' z uporabo np.array() funkcijo.
- Spremenljivko smo deklarirali 'index_arr' in dodelil vrnjeno vrednost np.argmax() funkcijo.
- Prešli smo niz 'a' in os v funkciji.
- Poskušali smo natisniti vrednost 'index_arr' .
- Na koncu smo poskušali pridobiti največjo vrednost matrike s pomočjo dveh različnih načinov, ki sta precej podobna np.argmax() .
V izhodu prikazuje indekse največjih elementov v matriki in vrednosti, ki so prisotne v teh indeksih.