logo

numpy.argmax v Pythone

V mnohých prípadoch, keď je veľkosť poľa príliš veľká, trvá príliš dlho, kým z nich nájde maximum prvkov. Na tento účel poskytuje numpy modul Pythonu funkciu tzv numpy.argmax() . Táto funkcia vracia indexy maximálnych hodnôt spolu so zadanou osou.

numpy argmax

Syntax:

 numpy.argmax(a, axis=None, out=None) 

Parametre

x: pole_like

Tento parameter definuje zdrojové pole, ktorého maximálnu hodnotu chceme poznať.

reverzný reťazec java

os: int (voliteľné)

Tento parameter definuje os, pozdĺž ktorej je index prítomný, a štandardne je do splošteného poľa.

out: pole (voliteľné)

Tento parameter definuje ndarray, do ktorého sa vloží výsledok. Bude rovnakého typu a tvaru, ktorý je vhodný na uloženie výsledku

Návraty

Tento parameter definuje ndarray, ktorý obsahuje indexy poľa. Tvar je rovnaký ako x.tvar s odstráneným rozmerom pozdĺž osi.

Príklad 1:

 Import numpy as np x = np.arange(20).reshape(4,5) + 7 x y=np.argmax(a) y 

Výkon:

 array([[ 7, 8, 9, 10, 11], [12, 13, 14, 15, 16], [17, 18, 19, 20, 21], [22, 23, 24, 25, 26]]) 19 

Vo vyššie uvedenom kóde

nerovná sa mysql
  • Importovali sme numpy s aliasom np.
  • Vytvorili sme pole 'X' použitím np.arange() funkciu s tvarom štyroch riadkov a piatich stĺpcov.
  • Do každého prvku poľa sme pridali aj 7.
  • Deklarovali sme premennú 'a' a priradil vrátenú hodnotu np.argmax() funkciu.
  • Prešli sme pole 'X' vo funkcii.
  • Nakoniec sme sa pokúsili vytlačiť hodnotu 'a' .

Vo výstupe zobrazuje indexy maximálneho prvku v poli.

Príklad 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 

Výkon:

 array([3, 3, 3, 3, 3], dtype=int64) array([4, 4, 4, 4], dtype=int64) 

Príklad 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] 

Výkon:

 (3, 4) 26 

Príklad 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 

Výkon:

 array([[0], [2], [2]]) array([5, 9, 6]) 

Vo vyššie uvedenom kóde

bash inak ak
  • Importovali sme numpy s aliasom np.
  • Vytvorili sme viacrozmerné pole 'a ' použitím np.array() funkciu.
  • Deklarovali sme premennú 'index_arr' a priradil vrátenú hodnotu np.argmax() funkciu.
  • Prešli sme pole 'a' a os vo funkcii.
  • Pokúsili sme sa vytlačiť hodnotu 'index_arr' .
  • Nakoniec sme sa pokúsili získať maximálnu hodnotu poľa pomocou dvoch rôznych spôsobov, ktoré sú dosť podobné np.argmax() .

Vo výstupe zobrazuje indexy maximálnych prvkov v poli a hodnoty, ktoré sú na týchto indexoch prítomné.