
Jeśli kiedykolwiek musiałeś warunkowo przypisywać wartości w tablicach NumPy, to prawdopodobnie szukałeś optymalnego rozwiązania. W tym artykule pokażę, jak działa numpy.select()
w języku Python oraz przedstawię przykłady jego zastosowania.
Co to jest numpy.select()?
Funkcja numpy.select()
pozwala na warunkowy wybór wartości w tablicach NumPy. Działa na zasadzie sprawdzania wielu warunków (każdy z warunków odpowiada określonej wartości) i przypisywania odpowiednich wyników do nowej tablicy.
Podstawowa składnia wygląda następująco:
numpy.select(condlist, choicelist, default=0)
condlist
– lista warunków (każdy musi być tablicą wartości logicznych, czyliTrue
lubFalse
).choicelist
– lista wartości przypisanych do odpowiednich warunków.default
– wartość domyślna, przypisana do elementów niespełniających żadnych warunków.
Przykład zastosowania numpy.select()
Aby lepiej zrozumieć działanie tej funkcji, przeanalizujmy konkretny przykład:
import numpy as np
# Tworzymy tablicę NumPy
x = np.array([10, 25, 40, 55, 70])
# Definiujemy warunki
warunki = [
(x < 20), # Liczby mniejsze niż 20
(x >= 20) & (x <= 50), # Liczby od 20 do 50
(x > 50) # Liczby większe niż 50
]
# Przypisane wartości
wartosci = [
"niskie",
"średnie",
"wysokie"
]
# Używamy numpy.select()
wynik = np.select(warunki, wartosci, default="brak")
print(wynik)
Rezultat wykonania powyższego kodu to:
['niskie' 'średnie' 'średnie' 'wysokie' 'wysokie']
Dzięki temu każda wartość w tablicy x
została zaklasyfikowana do jednej z trzech kategorii.
Zastosowanie numpy.select() w praktyce
Funkcja numpy.select()
jest niezwykle przydatna w analizie danych, przetwarzaniu sygnałów oraz w uczeniu maszynowym. Przykłady zastosowania obejmują:
- Normalizację kategorii w zbiorze danych.
- Tworzenie reguł klasyfikacyjnych dla danej zmiennej.
- Modyfikację wartości w tablicach NumPy w zależności od reguł biznesowych.
Porównanie numpy.select() do innych metod
Alternatywnymi metodami przypisywania wartości warunkowych w NumPy są:
Metoda | Zalety | Wady |
---|---|---|
numpy.where() |
Szybkie dla dwóch warunków. | Dla wielu warunków wymaga zagnieżdżenia. |
numpy.piecewise() |
Mocniejsze w zastosowaniach matematycznych. | Bardziej skomplikowana składnia. |
numpy.select() |
Bardzo czytelne dla wielu warunków. | Nieco wolniejsze w porównaniu do prostych warunków numpy.where() . |
Najczęstsze błędy przy korzystaniu z numpy.select()
Podczas pracy z numpy.select()
można natknąć się na pewne typowe błędy:
- Nieodpowiednia długość list – długość
condlist
ichoicelist
musi być taka sama. - Złe typy danych – np. przypisywanie wartości liczbowych do warunków w tablicy znakowej.
- Brak wartości domyślnej – niektóre elementy mogą wymagać wartości domyślnej, jeśli nie spełnią żadnego warunku.
Podsumowanie
Funkcja numpy.select()
umożliwia łatwe przypisywanie wartości do elementów tablicy NumPy na podstawie wielu warunków. Dzięki swojej prostocie i czytelnej składni jest idealnym narzędziem w analizie danych oraz przetwarzaniu informacji. Warto znać jej możliwości oraz ograniczenia, aby stosować ją efektywnie.
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, 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.