logo

numpy.argmax v Pythonu

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.

numpy argmax

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.