
Jeśli kiedykolwiek miałeś do czynienia z biblioteką NumPy w języku Python, prawdopodobnie natknąłeś się na funkcję numpy.argmax(). Jest to bardzo użyteczne narzędzie, które pozwala znaleźć indeks największego elementu w danym zbiorze danych. W tym artykule pokażę, jak działa numpy.argmax() i jak można go wykorzystać w praktyce.
Co to jest numpy.argmax()?
Funkcja numpy.argmax() zwraca indeks największej wartości w tablicy NumPy. Jeśli mamy tablicę jednowymiarową, zwraca ona pojedynczą liczbę. Natomiast w przypadku tablic wielowymiarowych możemy określić, wzdłuż której osi mamy szukać maksymalnej wartości.
Podstawowe użycie numpy.argmax()
Zacznijmy od prostego przykładu. Przypuśćmy, że mamy jednowymiarową tablicę:
import numpy as np
arr = np.array([1, 7, 3, 9, 5])
index_max = np.argmax(arr)
print(index_max) # Wynik: 3
Funkcja np.argmax(arr) zwróciła 3, ponieważ największa wartość (9) znajduje się na indeksie 3.
Użycie numpy.argmax() w tablicach wielowymiarowych
W przypadku tablic dwuwymiarowych możemy określić, wzdłuż której osi szukać maksymalnych wartości:
arr_2d = np.array([[10, 15, 20],
[25, 5, 30],
[35, 40, 45]])
max_index_axis0 = np.argmax(arr_2d, axis=0)
max_index_axis1 = np.argmax(arr_2d, axis=1)
print(max_index_axis0) # Wynik: [2 2 2]
print(max_index_axis1) # Wynik: [2 2 2]
Wynik max_index_axis0 = [2, 2, 2] oznacza, że największe wartości w każdej kolumnie znajdują się w wierszu o indeksie 2. Natomiast max_index_axis1 = [2, 2, 2] wskazuje, że w każdym wierszu największa wartość jest w ostatniej kolumnie.
Gdzie można zastosować numpy.argmax()?
Istnieje wiele praktycznych zastosowań tej funkcji:
- W analizie danych, aby znaleźć najważniejsze obserwacje.
- W implementacji algorytmów uczenia maszynowego – np. do znajdowania klasy o najwyższym prawdopodobieństwie w problemie klasyfikacji.
- W grach komputerowych – np. do określenia najlepszego ruchu na podstawie wartości punktowych.
Przykład z uczeniem maszynowym
Jednym z najczęstszych przypadków użycia numpy.argmax() jest klasyfikacja w uczeniu maszynowym. Oto przykład:
probabilities = np.array([0.1, 0.05, 0.6, 0.25])
predicted_class = np.argmax(probabilities)
print(predicted_class) # Wynik: 2
Wektor probabilities może reprezentować prawdopodobieństwo przynależności do różnych klas. np.argmax() zwraca indeks największego prawdopodobieństwa, czyli klasy o najwyższym przewidywanym wyniku.
Porównanie numpy.argmax() z innymi metodami
Aby lepiej zrozumieć, jak działa numpy.argmax(), warto porównać go z innymi metodami wyszukiwania maksymalnej wartości.
| Metoda | Zwracana wartość | Przykładowe użycie |
|---|---|---|
numpy.argmax() |
Indeks maksymalnej wartości | np.argmax([1, 3, 7, 5]) → 2 |
numpy.max() |
Maksymalna wartość | np.max([1, 3, 7, 5]) → 7 |
list.index() |
Indeks wartości w liście | [1, 3, 7, 5].index(max([1, 3, 7, 5])) → 2 |
Podsumowanie
Funkcja numpy.argmax() jest niezwykle użyteczna do znajdowania indeksów maksymalnych wartości w tablicach NumPy. Jest często wykorzystywana w data science, uczeniu maszynowym i analizie danych. Jej elastyczność pozwala na stosowanie zarówno w tablicach jednowymiarowych, jak i wielowymiarowych.
Podsumowując, jeśli kiedykolwiek będziesz potrzebować znaleźć indeks największej wartości w tablicy NumPy, numpy.argmax() będzie twoim najlepszym wyborem!
Inny ciekawy artykuł:
Jak działa numpy put w języku Python? Przykład zastosowania
Opanuj analizę danych w Pythonie z moim kursem!
Opanujesz podstawy programowania w Pythonie, w tym typy danych, zmienne, listy, słowniki, funkcje oraz obsługę błędów. Nauczysz się korzystać z biblioteki pandas do zaawansowanej analizy danych i pracy z różnymi rodzajami danych. Zrozumiesz proces analizy, eksploracji (EDA) i wizualizacji. Tworzenie własnych funkcji przygotuje Cię do rozmów kwalifikacyjnych i rozwiązywania rzeczywistych problemów biznesowych.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, PowerBI, Tableau i Pythona z certyfikatami!
🟨 Ekskluzywana ale pomagająca sobie społeczność.
🟩 Ponad 75 godzin materiałów video.
🟨 Spotkania LIVE co miesiąc.
🟩 Mój osobisty mentoring.

