Daugeliu atvejų, kai masyvo dydis yra per didelis, reikia per daug laiko rasti iš jų maksimalius elementus. Šiuo tikslu numpy Python modulis suteikia funkciją, vadinamą numpy.argmax() . Ši funkcija grąžina didžiausių reikšmių indeksus, pateikiamus kartu su nurodyta ašimi.
Sintaksė:
numpy.argmax(a, axis=None, out=None)
Parametrai
x: panašus į masyvą
Šis parametras apibrėžia šaltinio masyvą, kurio didžiausią reikšmę norime žinoti.
dvejetainiai medžių tipai
ašis: vidinė (neprivaloma)
Šis parametras apibrėžia ašį, išilgai kurios yra indeksas, ir pagal numatytuosius nustatymus jis patenka į išlygintą masyvą.
out: masyvas (neprivaloma)
Šis parametras apibrėžia ndarray, į kurį bus įterptas rezultatas. Tai bus tokio paties tipo ir formos, tinkama rezultatui saugoti
Grąžina
Šis parametras apibrėžia ndarray, kuriame yra masyvo indeksai. Forma tokia pati kaip x.forma pašalinus matmenis išilgai ašies.
1 pavyzdys:
Import numpy as np x = np.arange(20).reshape(4,5) + 7 x y=np.argmax(a) y
Išvestis:
java spalvos
array([[ 7, 8, 9, 10, 11], [12, 13, 14, 15, 16], [17, 18, 19, 20, 21], [22, 23, 24, 25, 26]]) 19
Aukščiau pateiktame kode
- Mes importavome numpy su slapyvardžiu np.
- Mes sukūrėme masyvą 'x' naudojant np.arange() funkcija su keturių eilučių ir penkių stulpelių forma.
- Į kiekvieną masyvo elementą taip pat įtraukėme 7.
- Mes paskelbėme kintamąjį 'ir' ir priskyrė grąžintą vertę np.argmax() funkcija.
- Mes praėjome masyvą 'x' funkcijoje.
- Galiausiai bandėme atspausdinti vertę 'ir' .
Išvestyje rodomi didžiausio masyvo elemento indeksai.
eilutė iki sveikojo skaičiaus
2 pavyzdys:
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
Išvestis:
array([3, 3, 3, 3, 3], dtype=int64) array([4, 4, 4, 4], dtype=int64)
3 pavyzdys:
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]
Išvestis:
(3, 4) 26
4 pavyzdys:
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
Išvestis:
array([[0], [2], [2]]) array([5, 9, 6])
Aukščiau pateiktame kode
- Mes importavome numpy su slapyvardžiu np.
- Sukūrėme daugiamatį masyvą 'a ' naudojant np.array() funkcija.
- Mes paskelbėme kintamąjį 'index_arr' ir priskyrė grąžintą vertę np.argmax() funkcija.
- Mes praėjome masyvą 'a' ir funkcijos ašį.
- Bandėme atspausdinti vertę 'index_arr' .
- Galų gale mes bandėme gauti maksimalią masyvo vertę dviem skirtingais būdais, kurie yra gana panašūs į np.argmax() .
Išvestyje rodomi didžiausių masyvo elementų indeksai ir tuose indeksuose esančios reikšmės.