
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 zastosowaniaOpanuj 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, Tableau i Pythona z certyfikatami + specjalistycznych webinarów z PowerBI.
Ekskluzywana ale pomagająca sobie społeczność.
Ponad 61 godzin materiałów video.
Spotkania LIVE co miesiąc.
Mój osobisty mentoring.