Rešeno: Pronalaženje maksimalnog broja elemenata duž kolona koristeći Python numpy.argmax%28%29

Posljednje ažuriranje: 09/11/2023

U svijetu programiranja i manipulacije podacima, Python je postao veoma popularan jezik zbog svoje fleksibilnosti i obilja biblioteka. Jedna takva moćna biblioteka je NumPy, koja uvelike pojednostavljuje rukovanje i manipulaciju nizovima i matricama. U ovom članku ćemo raspravljati o problemu koji se često sreće: pronalaženje maksimalnog elementa duž stupaca 2D niza ili matrice. Koristićemo funkciju **numpy.argmax()** da to postignemo. Dakle, zavalite se i opustite se dok uranjamo duboko u ovo neverovatno putovanje manipulacije nizom i maksimalnog otkrivanja kroz Python i NumPy.

Izjava o problemu i rješenje pomoću numpy.argmax()

Problem kojim se bavimo je pronaći maksimalni element duž kolona 2D niza ili matrice. Da bismo to postigli, koristit ćemo funkciju `numpy.argmax()` iz NumPy biblioteke.

import numpy as np

# Sample 2D array
array = np.array([[1, 7, 3],
                  [4, 2, 9],
                  [5, 6, 8]])

# Finding maximum elements along columns
max_indices = np.argmax(array, axis=0)

print("Maximum elements along columns:", array[max_indices, range(len(max_indices))])

Prvo, uvezimo NumPy biblioteku sa pseudonimom `np`. Zatim kreiramo uzorak 2D niza koristeći `np.array()` i prosljeđujemo ugniježđenu listu koja sadrži vrijednosti reda. Nakon toga, koristimo funkciju `numpy.argmax()`, prosljeđujući niz zajedno sa `axis=0`, što specificira da želimo izvršiti operaciju duž stupaca. Ova funkcija vraća indekse maksimalnog broja elemenata duž navedene ose. Konačno, ispisujemo maksimum elemenata duž kolona koristeći fensi indeksiranje.

Korak po korak objašnjenje koda

U ovom odeljku ćemo razgovarati o radu koda korak po korak.

1. Uvezite NumPy sa `import numpy as np`.

2. Kreirajte uzorak 2D niza sa `array = np.array([[1, 7, 3], [4, 2, 9], [5, 6, 8]])`.

3. Pronađite indeksne pozicije maksimalnih elemenata duž stupaca koristeći `np.argmax()` sa `axis=0`. Ovo vraća niz indeksa, npr. `[2, 0, 1]`, koji ukazuje na položaje maksimalnih elemenata duž svake kolone.

4. Fancy indeksiranje se primjenjuje za izdvajanje maksimalnog broja elemenata duž stupaca koristeći `niz[max_indices, range(len(max_indices))]`. Ovdje `max_indices` predstavlja redove, a `range(len(max_indices))` predstavlja stupce. Ovo vraća maksimalan niz elemenata, npr. `[5, 7, 9]`.

5. Ispišite rezultat koristeći funkciju `print()`.

Dodatna razmatranja i primjeri

Kada radite sa 2D nizovima ili matricama, postoji više funkcija unutar NumPy biblioteke koje pomažu u ostvarivanju različitih zadataka. Na primjer, ako želite pronaći maksimalni element cijele matrice, možete koristiti funkciju `numpy.amax()`. Slično, ako želite pronaći maksimalan broj elemenata duž redova, možete postaviti parametar `axis` funkcije `numpy.argmax()` na `1`.

# Finding maximum elements along rows
max_indices_rows = np.argmax(array, axis=1)
print("Maximum elements along rows:", array[range(len(max_indices_rows)), max_indices_rows])

U zaključku, Python i NumPy nude moćne alate za efikasno rukovanje i manipulaciju nizovima i matricama. Funkcija **numpy.argmax()** je svestrano rješenje kada je u pitanju pronalaženje maksimalnog broja elemenata niza duž određene ose. Razumijevanjem ove funkcije i njenih različitih aplikacija, možete efikasno pojednostaviti svoje procese manipulacije podacima i proizvesti efikasan kod za postizanje širokog spektra zadataka.

Slični postovi: