Podstawy Pythona i Bibliotek dla Data Science (NumPy, Pandas)

W dzisiejszej lekcji zanurzymy się w podstawy Pythona i kluczowych bibliotek dla Data Science: NumPy i Pandas. Poznamy podstawowe typy danych, operacje arytmetyczne, a także dowiemy się, jak manipulować danymi za pomocą tych potężnych narzędzi.

Learning Objectives

  • Zrozumienie podstawowych typów danych w Pythonie.
  • Zapoznanie się z biblioteką NumPy i jej zastosowaniem do operacji na wektorach i macierzach.
  • Poznanie biblioteki Pandas i jej użycia do analizy danych.
  • Umiejętność wczytywania, przeglądania i podstawowej manipulacji danymi w Pandas.

Lesson Content

Wprowadzenie do Pythona

Python to popularny język programowania dla data science, charakteryzujący się prostą składnią i bogatym ekosystemem bibliotek. Zaczniemy od podstawowych typów danych: liczby całkowite (int), liczby zmiennoprzecinkowe (float), łańcuchy znaków (str) i wartości logiczne (bool).

Przykład:

liczba_calkowita = 10
liczba_zmiennoprzecinkowa = 3.14
tekst = "Witaj świecie!"
prawda = True

Operacje Arytmetyczne i Zmienne

Python obsługuje standardowe operacje arytmetyczne: +, -, *, /. Wyniki operacji arytmetycznych możemy zapisywać w zmiennych.

Przykład:

suma = 5 + 3
roznica = 10 - 4
iloraz = 15 / 3

NumPy - Praca z Macierzami

NumPy (Numerical Python) to biblioteka do efektywnej pracy z tablicami i macierzami. Podstawowym obiektem w NumPy jest ndarray (n-wymiarowa tablica). Pozwala ona na szybkie wykonywanie operacji na dużych zbiorach danych.

Przykład:

import numpy as np

# Tworzenie tablicy
tablica = np.array([1, 2, 3, 4, 5])

# Operacje na tablicach
tablica_pomnozona = tablica * 2

# Dostep do elementow
element = tablica[0]  # Dostep do pierwszego elementu

Pandas - Analiza Danych

Pandas to potężna biblioteka do analizy i manipulacji danymi. Oferuje dwa główne obiekty: DataFrame (tabela danych) i Series (kolumna danych). Pozwala na łatwe wczytywanie danych z różnych źródeł (CSV, Excel, SQL), filtrowanie, grupowanie i analizę.

Przykład:

import pandas as pd

# Wczytywanie danych z pliku CSV
df = pd.read_csv("dane.csv")

# Wyświetlanie pierwszych kilku wierszy
print(df.head())

# Podstawowe statystyki
print(df.describe())

# Dostep do kolumn
kolumna_wiek = df["Wiek"]

Wczytywanie i przeglądanie danych w Pandas

Pandas ułatwia wczytywanie i przeglądanie danych z różnych formatów. Używamy funkcji read_csv(), read_excel(), itp. Do wyświetlania fragmentów danych używamy head(), tail(), a do uzyskiwania informacji o danych – info().

Przykład:

import pandas as pd

# Wczytanie danych z pliku CSV
df = pd.read_csv("dane_sprzedazy.csv")

# Wyświetlanie pierwszych 5 wierszy
print(df.head())

# Wyświetlanie informacji o typach danych i brakujących wartościach
print(df.info())

# Wyświetlanie statystyk opisowych
print(df.describe())

Deep Dive

Explore advanced insights, examples, and bonus exercises to deepen understanding.

Rozszerzone Materiały: Data Scientist - Model Deployment i Monitoring (Dzień 2)

Rozszerzone Materiały: Model Deployment i Monitoring - Dzień 2

Brawo za ukończenie wczorajszej lekcji! Dzisiaj zagłębimy się w bardziej zaawansowane aspekty Pythona, NumPy i Pandas, a także pokażemy, jak te umiejętności przekładają się na realne zastosowania w świecie Data Science.

Deep Dive: Zaawansowane Koncepcje i Alternatywne Perspektywy

1. Broadcasting w NumPy

Pamiętasz operacje na wektorach i macierzach z NumPy? Broadcasting to potężna koncepcja, która pozwala na wykonywanie operacji arytmetycznych na tablicach o różnych kształtach, pod warunkiem spełnienia pewnych reguł. Wyobraź sobie dodawanie stałej do każdego elementu macierzy bez konieczności iterowania po każdym elemencie. To właśnie broadcasting w akcji!

Przykład: Spróbuj dodać wektor [1, 2, 3] do macierzy [[4, 5, 6], [7, 8, 9]]. NumPy "rozciągnie" wektor do kształtu macierzy, a następnie wykona dodawanie element po elemencie.

                    
import numpy as np

macierz = np.array([[4, 5, 6], [7, 8, 9]])
wektor = np.array([1, 2, 3])
wynik = macierz + wektor
print(wynik)
                    
                

Praktycznym przykładem może być normalizacja danych: odejmujesz średnią (wektor) od każdego atrybutu w Twoim zbiorze danych (macierzy).

2. Zaawansowane Operacje w Pandas - Grupowanie i Agregacja (groupby(), aggregate())

Przekroczyliśmy podstawowe przeglądanie danych. Teraz zajmiemy się potężnym narzędziem: grupowaniem danych. Wyobraź sobie analizę sprzedaży w sklepie. Chcesz wiedzieć, jakie produkty najlepiej się sprzedają w poszczególnych miesiącach. Funkcja groupby() w Pandas to idealne rozwiązanie!

Używamy groupby() do grupowania danych (np. po miesiącach) i następnie agregujemy wyniki (np. sumujemy sprzedaż dla każdego miesiąca). Funkcja aggregate() pozwala na zastosowanie wielu agregacji w jednym kroku (np. liczenie średniej i sumy dla każdej grupy).

                    
import pandas as pd

# Przykład (wymaga załadowania danych do DataFrame 'sprzedaz')
# Załóżmy, że mamy kolumny 'miesiac', 'produkt' i 'cena'
sprzedaz_po_miesiacach = sprzedaz.groupby('miesiac')['cena'].sum() # Suma sprzedaży po miesiącach
sprzedaz_po_produktach = sprzedaz.groupby('produkt')['cena'].agg(['sum', 'mean']) # Suma i średnia cena po produkcie
print(sprzedaz_po_miesiacach)
print(sprzedaz_po_produktach)
                    
                

Bonus Exercises

Ćwiczenie 1: Broadcasting w Akcji

Stwórz macierz NumPy 3x3 wypełnioną losowymi liczbami całkowitymi z zakresu od 1 do 10. Następnie, dodaj do każdego wiersza tej macierzy wektor [1, 2, 3] używając broadcastingu. Wyświetl wynik.

                    
import numpy as np

# Twój kod tutaj...
                    
                

Ćwiczenie 2: Analiza Sprzedaży

Użyjmy danych o sprzedaży (możesz stworzyć przykładowe dane jako DataFrame Pandas). Stwórz DataFrame z kolumnami: 'miesiac', 'produkt', 'ilosc', 'cena_jednostkowa'. Oblicz wartość sprzedaży (ilość * cena_jednostkowa). Następnie, pogrupuj dane po miesiącu i oblicz sumę sprzedaży dla każdego miesiąca.

                    
import pandas as pd

# Twój kod tutaj...
                    
                

Real-World Connections

1. Przetwarzanie Obrazów: W przetwarzaniu obrazów, obrazy są często reprezentowane jako wielowymiarowe tablice NumPy. Broadcasting i operacje na macierzach są kluczowe dla manipulacji obrazami, np. zmiany koloru, filtracji, detekcji krawędzi.

2. Analiza Finansowa: W analizie finansowej, Pandas jest szeroko stosowane do analizy danych giełdowych, tworzenia raportów, i zarządzania portfelami. Grupowanie i agregacja ułatwiają analizę trendów, identyfikację ryzyk i optymalizację strategii inwestycyjnych. Wyobraź sobie analizę zysków i strat w różnych sektorach gospodarki!

Challenge Yourself

Stwórz funkcję w Pythonie, która przyjmuje macierz NumPy i wektor. Funkcja ta powinna używać broadcastingu do odejmowania wektora od każdego wiersza macierzy. Następnie, przetestuj swoją funkcję na losowej macierzy i wektorze.

Further Learning

Interactive Exercises

Ćwiczenie 1: NumPy - Operacje na Tablicach

Stwórz tablicę NumPy zawierającą liczby od 1 do 10. Następnie pomnóż wszystkie elementy przez 2. Na koniec oblicz średnią arytmetyczną elementów tablicy.

Ćwiczenie 2: Pandas - Wczytywanie i Przeglądanie Danych

Wczytaj plik `dane_sprzedazy.csv` (zakładamy, że jest dostępny, np. z poprzedniej lekcji lub wygenerowany na potrzeby tego ćwiczenia). Wyświetl pierwsze 10 wierszy, typy danych w każdej kolumnie i statystyki opisowe dla kolumn numerycznych.

Ćwiczenie 3: Pandas - Selekcja Danych

Używając wczytanych danych `dane_sprzedazy.csv`, wybierz tylko te wiersze, gdzie wartość 'Sprzedaż' jest większa niż 1000. Wyświetl nagłówek (pierwsze kilka wierszy) wynikowej podtabeli.

Ćwiczenie 4: Analiza Danych - Refleksja

Po wykonaniu ćwiczeń zastanów się, jakie problemy w realnych projektach data science mogą rozwiązywać NumPy i Pandas. Jakie są potencjalne trudności związane z ich używaniem?

Knowledge Check

Question 1: Która biblioteka jest używana do efektywnej pracy z tablicami i macierzami w Pythonie?

Question 2: Który obiekt w Pandas reprezentuje tabelę danych?

Question 3: Jaką funkcją wczytasz dane z pliku CSV w Pandas?

Question 4: Które polecenie wyświetli pierwsze pięć wierszy DataFrame w Pandas?

Question 5: Do czego służy funkcja `describe()` w Pandas?

Practical Application

Wyobraź sobie, że pracujesz w małym sklepie internetowym. Masz dane dotyczące sprzedaży: daty, produkty, ceny, i liczby sprzedanych sztuk. Użyj Pandas do wczytania tych danych, obliczenia całkowitych przychodów każdego dnia i znalezienia najbardziej dochodowego produktu. To prosta analiza, ale pokazuje potencjał Pandas w analizie danych biznesowych.

Key Takeaways

Next Steps

Przygotuj się na następną lekcję, w której zagłębimy się w bardziej zaawansowane operacje w Pandas, takie jak filtrowanie, grupowanie i łączenie danych. Spróbuj przeanalizować jakiś swój zestaw danych (np. z Excela).

Your Progress is Being Saved!

We're automatically tracking your progress. Sign up for free to keep your learning paths forever and unlock advanced features like detailed analytics and personalized recommendations.

Next Lesson (Day 3)