0Pricing
Learn AI with Python · Lekcja

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)   # False

Bezpieczne 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))  # True

Decimal 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.30

bool 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)    # 2

Zliczanie 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)   # 3

Sprawdzanie 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)))  # True

Puł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-5

Niespodzianki 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 stable

Szybkie sprawdzenie

Sprawdź swoją wiedzę o typach języka Python.

Podsumowanie

Najważniejsze informacje o liczbach przy pracy z danymi:

  • int jest dokładny i nieograniczony
  • float jest przybliżony; należy używać math.isclose, a nie ==
  • Decimal("...") służy do obsługi pieniędzy
  • bool jest typu int: sum(mask) zlicza wartości
  • type() pokazuje klasę, a isinstance() 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

  1. Środowiska wirtualne i pip
  2. Notatniki Jupyter dla data science
  3. Typy danych Pythona dla data science
  4. Praca z REPL Pythona i IPythonem
← Powrót do Learn AI with Python