Jak działa numpy unique w języku Python? Przykład zastosowania

Jak działa numpy unique w języku Python? Przykład zastosowania
„`html

Jeśli kiedykolwiek pracowałeś z biblioteką NumPy w Pythonie, z pewnością spotkałeś się z potrzebą wyodrębnienia unikalnych wartości z tablicy. Do tego celu świetnie nadaje się funkcja numpy.unique(). W tym artykule przybliżę, jak działa numpy unique w języku Python i podam kilka praktycznych przykładów.

Jak działa numpy.unique()?

Funkcja numpy.unique() zwraca tablicę unikalnych wartości z podanej tablicy NumPy. Można ją wykorzystać do analizy danych, odfiltrowania powtarzających się elementów i wielu innych zastosowań.

Podstawowa składnia funkcji wygląda następująco:

numpy.unique(ar, return_index=False, return_inverse=False, return_counts=False, axis=None)
  • ar – wejściowa tablica NumPy.
  • return_index – jeśli ustawione na True, zwraca indeksy pierwszych wystąpień unikalnych wartości w oryginalnej tablicy.
  • return_inverse – jeśli True, zwraca tablicę indeksów, które mogą odtworzyć oryginalną tablicę.
  • return_counts – jeśli True, zwraca liczbę wystąpień poszczególnych unikalnych elementów.
  • axis – jeśli określony, zwraca unikalne wiersze lub kolumny tablicy wielowymiarowej.

Podstawowy przykład użycia

Najprostsze zastosowanie to zwrócenie unikalnych wartości z tablicy jednowymiarowej:

import numpy as np

array = np.array([1, 2, 2, 3, 4, 4, 5])
unique_values = np.unique(array)

print(unique_values)

Wynik:

[1 2 3 4 5]

Jak widać, powtarzające się liczby zostały usunięte.

Co zwraca return_index?

Jeśli chcemy dowiedzieć się, na których indeksach w oryginalnej tablicy znajdują się unikalne wartości, możemy użyć opcji return_index=True:

unique_values, indices = np.unique(array, return_index=True)

print(unique_values)  # [1 2 3 4 5]
print(indices)        # [0 1 3 4 6]

Otrzymujemy indeksy pierwszych wystąpień tych wartości.

Odwrócenie operacji – return_inverse

Możemy również sprawdzić, jak rekonstrukcja oryginalnej tablicy wygląda przy pomocy return_inverse:

unique_values, inverse_indices = np.unique(array, return_inverse=True)

print(unique_values)  # [1 2 3 4 5]
print(inverse_indices)  # [0 1 1 2 3 3 4]

Te liczby wskazują, jak odbudować oryginalną tablicę na podstawie wartości w unique_values.

Ile razy występuje każda wartość? return_counts

Aby policzyć, ile razy każda wartość się pojawiła, ustawiamy return_counts=True:

unique_values, counts = np.unique(array, return_counts=True)

print(unique_values)  # [1 2 3 4 5]
print(counts)         # [1 2 1 2 1]

Zatem liczba 2 i 4 pojawiły się po dwa razy, a inne wartości tylko raz.

Obsługa tablic wielowymiarowych

W przypadku wielowymiarowych tablic możemy kontrolować unikalność wzdłuż określonej osi:

matrix = np.array([[1, 2, 3],
                   [3, 2, 1],
                   [1, 2, 3]])

unique_rows = np.unique(matrix, axis=0)
print(unique_rows)

Wynik:

[[1 2 3]
 [3 2 1]]

Zostały usunięte powtarzające się wiersze.

Porównanie zwracanych wartości – tabela podsumowująca

Parametr Opis Przykładowy wynik
Brak dodatkowych argumentów Zwraca tylko unikalne wartości [1, 2, 3, 4, 5]
return_index=True Zwraca indeksy pierwszych wystąpień ([1, 2, 3, 4, 5], [0, 1, 3, 4, 6])
return_inverse=True Zwraca indeksy potrzebne do rekonstrukcji ([1, 2, 3, 4, 5], [0, 1, 1, 2, 3, 3, 4])
return_counts=True Zwraca liczność poszczególnych wartości ([1, 2, 3, 4, 5], [1, 2, 1, 2, 1])

Podsumowanie

Narzędzie numpy.unique() to bardzo przydatna funkcja, pozwalająca szybko odfiltrować unikalne wartości z tablic NumPy. Możemy dodatkowo uzyskać indeksy pierwszych wystąpień, liczność poszczególnych elementów albo odwrócić operację tak, by uzyskać oryginalne dane. Jest to niezwykle użyteczne w analizie danych, przetwarzaniu macierzy czy eliminacji duplikatów.

Mam nadzieję, że teraz wiesz, jak działa numpy unique w języku Python. Przykłady pokazały, jak można ją efektywnie wykorzystać w praktyce.

„` Inny ciekawy artykuł: Jak działa numpy sort w języku Python? Przykład zastosowania
KajoDataSpace