Typy danych Pythona dla data science
int, float, complex, bool, str — jak precyzja i wybór typu wpływają na analizę danych.
Typy danych Pythona dla data science to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Learn AI with Python, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn AI with Python zawiera 4 lekcji w sumie.
Liczby w data science
Python ma dwa podstawowe typy liczbowe: int (liczby całkowite o dowolnej precyzji) oraz float (liczby dziesiętne zgodne ze standardem IEEE 754 i zapisane na 64 bitach). Wybór właściwego typu zapobiega trudnym do wykrycia błędom danych.
int jest dokładny i nieograniczony
Liczby całkowite w Pythonie nigdy nie przepełniają się. Mogą rosnąć tak bardzo, jak pozwala na to pamięć, co świetnie sprawdza się w przypadku dokładnych zliczeń i dużych silni.
big = 2 ** 200
print(big)
print(type(big)) # <class 'int'>Pułapka precyzji typu float
Liczby zmiennoprzecinkowe nie potrafią dokładnie reprezentować każdej liczby dziesiętnej. Klasyczna niespodzianka: 0.1 + 0.2 nie jest dokładnie równe 0.3.
print(0.1 + 0.2) # 0.30000000000000004
print(0.1 + 0.2 == 0.3) # FalseBezpieczne porównywanie liczb float
Nie należy porównywać liczb float za pomocą ==. Zamiast tego należy użyć math.isclose z określoną tolerancją.
import math
print(math.isclose(0.1 + 0.2, 0.3)) # TrueDecimal do obsługi pieniędzy
W przypadku walut należy używać decimal.Decimal, który przechowuje dokładne wartości w systemie dziesiętnym. Obiekty Decimal należy zawsze tworzyć z łańcuchów znaków, a nie z liczb float, aby uniknąć przejęcia ich błędu.
from decimal import Decimal
price = Decimal("0.10") + Decimal("0.20")
print(price) # 0.30bool jest podklasą int
W Pythonie True jest równe 1, a False jest równe 0. Dzięki temu można sumować wartości logiczne, aby zliczać dopasowania.
mask = [True, False, True, True]
print(sum(mask)) # 3 matches
print(True + True) # 2Zliczanie za pomocą wartości logicznych
To zachowanie typu bool jak int jest powszechnie wykorzystywane w NumPy i pandas: sumowanie maski logicznej zlicza wiersze spełniające dany warunek.
ages = [12, 20, 35, 17, 40]
adults = sum(a >= 18 for a in ages)
print(adults) # 3Sprawdzanie typu za pomocą type()
type(x) zwraca dokładną klasę wartości. Jest to przydatne, gdy kolumna nieoczekiwanie zawiera łańcuchy znaków zamiast liczb.
print(type(5)) # <class 'int'>
print(type(5.0)) # <class 'float'>
print(type("5")) # <class 'str'>Sprawdzanie typu za pomocą isinstance()
Należy preferować isinstance zamiast type ==, ponieważ isinstance uwzględnia dziedziczenie. Należy pamiętać, że wartość bool przechodzi sprawdzenie typu int.
print(isinstance(5, int)) # True
print(isinstance(True, int)) # True (bool subclasses int)
print(isinstance(5.0, (int, float))) # TruePułapki niejawnej konwersji typów
Mieszanie typów powoduje niejawną konwersję. Dzielenie liczb całkowitych przez liczby float daje liczby float, a łączenie liczby z łańcuchem znaków zgłasza błąd TypeError. Należy wcześnie uporządkować typy danych.
print(5 / 2) # 2.5 (true division always float)
print(5 // 2) # 2 (floor division)
# "id-" + 5 # TypeError
print("id-" + str(5)) # id-5Niespodzianki typu float podczas agregacji
Sumowanie wielu liczb float powoduje kumulowanie się drobnych błędów. W przypadku dużych zbiorów danych należy preferować NumPy, który używa sumowania parami, aby ograniczyć narastanie błędu.
vals = [0.1] * 10
print(sum(vals)) # 0.9999999999999999
# NumPy: np.sum(vals) is more numerically stableSzybkie sprawdzenie
Sprawdź swoją wiedzę o typach języka Python.
Podsumowanie
Najważniejsze informacje o liczbach przy pracy z danymi:
intjest dokładny i nieograniczonyfloatjest przybliżony; należy używaćmath.isclose, a nie==Decimal("...")służy do obsługi pieniędzybooljest typu int:sum(mask)zlicza wartościtype()pokazuje klasę, aisinstance()uwzględnia dziedziczenie- Należy uważać na niejawną konwersję podczas dzielenia i łączenia wartości
Często zadawane pytania
Czy lekcja „Typy danych Pythona dla data science” jest bezpłatna?
Tak — pełny tekst „Typy danych Pythona dla data science” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Learn AI with Python, przejdź na CoddyKit PRO. Kurs Learn AI with Python zawiera 4 lekcji w sumie.
Co nauczysz się w „Typy danych Pythona dla data science”?
int, float, complex, bool, str — jak precyzja i wybór typu wpływają na analizę danych. Ćwiczysz Learn AI with Python z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Learn AI with Python?
Nie wymagamy żadnego doświadczenia. Learn AI with Python w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Typy danych Pythona dla data science”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Learn AI with Python?
Tak. Każda lekcja Learn AI with Python zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Środowiska wirtualne i pip
- Notatniki Jupyter dla data science
- Typy danych Pythona dla data science
- Praca z REPL Pythona i IPythonem