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.
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
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 (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 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"]
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())
Explore advanced insights, examples, and bonus exercises to deepen understanding.
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.
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).
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)
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...
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...
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!
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.
groupby()
agg()
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.
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.
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.
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?
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.
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).
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.