Python i Biblioteki dla Data Science

W dzisiejszej lekcji zapoznamy się z dwoma kluczowymi bibliotekami Pythona dla Data Science: NumPy i Pandas. Nauczymy się jak efektywnie manipulować danymi numerycznymi i przeprowadzać podstawowe operacje na danych, odczytując je z plików CSV.

Learning Objectives

  • Zrozumienie roli bibliotek NumPy i Pandas w Data Science.
  • Umiejętność tworzenia i manipulowania tablicami NumPy.
  • Umiejętność wczytywania danych z plików CSV do Pandas DataFrame.
  • Wykorzystanie Pandas do filtrowania, sortowania i grupowania danych.

Lesson Content

Wprowadzenie do NumPy: Operacje na tablicach

NumPy (Numerical Python) to fundamentalna biblioteka dla obliczeń numerycznych w Pythonie. Kluczową cechą NumPy są tablice wielowymiarowe, zwane ndarray. Umożliwiają one efektywne wykonywanie operacji matematycznych na dużych zbiorach danych.

Przykład:

import numpy as np

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

# Tworzenie tablicy dwuwymiarowej (macierzy)
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(matrix)

# Podstawowe operacje:
print(arr + 2) # Dodawanie do każdego elementu
print(arr * 2) # Mnożenie każdego elementu
print(matrix.T) # Transpozycja macierzy

Ćwiczenie: Spróbuj stworzyć tablicę NumPy z liczbami od 0 do 10 i obliczyć ich kwadraty.

Wprowadzenie do Pandas: Manipulacja danymi

Pandas to biblioteka stworzona do analizy i manipulacji danymi. Centralnym obiektem w Pandas jest DataFrame, który przypomina tabelę (arkusz kalkulacyjny) z kolumnami i wierszami. Pandas umożliwia łatwe wczytywanie danych z różnych źródeł, takich jak pliki CSV, Excel, bazy danych itp.

Przykład:

import pandas as pd

# Wczytywanie danych z pliku CSV (zakładamy, że mamy plik 'sprzedaz.csv')
df = pd.read_csv('sprzedaz.csv') # Musisz mieć plik 'sprzedaz.csv' w tym samym folderze

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

# Wyświetlanie informacji o danych
print(df.info())

# Dostęp do kolumn
print(df['Produkt'])

# Podstawowe statystyki:
print(df.describe())

Ćwiczenie: Stwórz prosty plik CSV z danymi o sprzedaży (np. Produkt, Cena, Ilość) i wczytaj go do DataFrame.

Operacje na danych w Pandas: Filtrowanie, sortowanie, grupowanie

Pandas oferuje potężne możliwości filtrowania, sortowania i grupowania danych. Pozwala to na analizę danych w bardzo szczegółowy sposób.

Filtrowanie:

# Filtrowanie produktów o cenie powyżej 10 zł
df_filtrowane = df[df['Cena'] > 10]
print(df_filtrowane)

Sortowanie:

# Sortowanie według ceny w kolejności rosnącej
df_posortowane = df.sort_values(by='Cena')
print(df_posortowane)

# Sortowanie według ceny w kolejności malejącej
df_posortowane_malejaco = df.sort_values(by='Cena', ascending=False)
print(df_posortowane_malejaco)

Grupowanie:

# Grupowanie po produkcie i obliczanie sumy ilości
grouped_df = df.groupby('Produkt')['Ilość'].sum()
print(grouped_df)

Ćwiczenie: Spróbuj przefiltrować dane, posortować je po ilości i pogrupować je według produktu, obliczając średnią cenę.

Deep Dive

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

Rozszerzone Materiały Dzień 3: NumPy & Pandas - Data Science

Rozszerzone Materiały Dzień 3: NumPy & Pandas - Data Science

Podsumowanie Lekcji: Dzisiejsza lekcja to podstawa. Poznaliśmy NumPy i Pandas, potężne narzędzia do manipulacji danymi w Pythonie. Opanowaliśmy tworzenie tablic NumPy, wczytywanie danych z plików CSV do DataFrame Pandas oraz podstawowe operacje filtrowania, sortowania i grupowania danych.

Deep Dive: Zaawansowane Koncepcje i Alternatywne Perspektywy

NumPy: Broadcasting i Uogólnienia

Pamiętasz broadcasting? To kluczowa cecha NumPy, która pozwala na operacje na tablicach o różnych kształtach, bez potrzeby jawnego kopiowania danych. Wyobraź sobie dodawanie wektora (np. [1, 2, 3]) do macierzy. NumPy automatycznie "rozciągnie" wektor, aby dopasować go do wymiarów macierzy. To znacznie upraszcza kod i zwiększa wydajność.

                
import numpy as np

macierz = np.array([[1, 2, 3], [4, 5, 6]])
wektor = np.array([10, 20, 30])

wynik = macierz + wektor  # Broadcasting!
print(wynik)
                
            

Uogólnienia NumPy, jak np.where(), to kolejny mocny punkt. Umożliwiają one wykonywanie operacji warunkowych na elementach tablicy, podobnie jak operator trójargumentowy w innych językach.

                
import numpy as np

tablica = np.array([1, -2, 3, -4, 5])
wynik = np.where(tablica > 0, tablica, 0) # Zamień ujemne na 0
print(wynik)
                
            

Pandas: Indexowanie i Operacje na Czasie

Pandas oferuje więcej niż tylko filtrowanie. Indeksowanie jest potężne. Możesz ustawić kolumnę jako indeks (np. datę) i szybko wykonywać operacje na danych czasowych. Operacje na czasie, takie jak filtrowanie danych z określonego przedziału czasu, stają się dziecinnie proste.

                
import pandas as pd

# Załóżmy, że mamy DataFrame z kolumną 'Data'
# Zmień typ danych na datetime
df['Data'] = pd.to_datetime(df['Data'])
df = df.set_index('Data')

# Filtruj dane z 2023 roku
dane_z_2023 = df['2023']

# Filtruj dane między 1 stycznia a 31 marca 2023
dane_kwartal1_2023 = df['2023-01-01':'2023-03-31']

                
            

Używaj .loc i .iloc do precyzyjnego wybierania danych na podstawie etykiet (.loc) lub pozycji (.iloc).

Bonusowe Ćwiczenia

Ćwiczenie 1: Broadcasting NumPy

Utwórz macierz 3x3 wypełnioną losowymi liczbami całkowitymi. Następnie dodaj do niej wektor [1, 2, 3] i wyświetl wynik. Spróbuj zmienić kształt wektora i zobacz, co się stanie.

                
# Twój kod tutaj
import numpy as np
macierz = np.random.randint(0, 10, size=(3, 3)) #macierz 3x3 z liczbami od 0 do 9
wektor = np.array([1, 2, 3])
wynik = macierz + wektor
print(wynik)
                
            

Ćwiczenie 2: Pandas i Analiza Sprzedaży

Pobierz lub utwórz plik CSV z danymi sprzedaży (np. produkt, data, cena, ilość). Wczytaj dane do DataFrame Pandas. Oblicz sumaryczną wartość sprzedaży dla każdego produktu. Posortuj wyniki malejąco. Następnie oblicz średnią cenę sprzedaży dla każdego produktu.

                
# Twój kod tutaj
import pandas as pd
df = pd.read_csv('dane_sprzedazy.csv') #załóżmy, że mamy taki plik
suma_sprzedazy = df.groupby('produkt')['cena'].sum()
posortowane = suma_sprzedazy.sort_values(ascending=False)
srednia_cena = df.groupby('produkt')['cena'].mean()

print(posortowane)
print(srednia_cena)
                
            

Real-World Connections: Gdzie To Zobaczymy?

Analiza Finansowa: NumPy i Pandas są niezbędne w analizie danych finansowych. Wykorzystuje się je do obliczania wskaźników, analizy trendów na wykresach giełdowych (przy użyciu bibliotek takich jak Matplotlib i Seaborn, które poznamy później) i modelowania ryzyka.

E-commerce: Platformy e-commerce używają Pandas do analizy danych sprzedażowych, segmentacji klientów, personalizacji ofert i optymalizacji cen. Przykład: Analiza wzorców zakupowych klientów w polskich sklepach internetowych.

Nauka i Inżynieria: NumPy jest kluczowe w przetwarzaniu danych naukowych (np. symulacje fizyczne, przetwarzanie obrazów). Wyobraź sobie analizę danych z czujników pogodowych w Polsce - Numpy i Pandas to podstawowe narzędzia.

Przykłady z Polski: Analiza danych z Głównego Urzędu Statystycznego (GUS), analiza ruchu turystycznego w polskich miastach, analiza danych z e-rejestracji.

Challenge Yourself: Wyzwania dla Ambitnych

Wyzwanie 1: Stwórz funkcję, która przyjmuje DataFrame Pandas z danymi o sprzedaży, oblicza łączne przychody i zyski dla każdego produktu i zwraca DataFrame z tymi wynikami. Uwzględnij koszty produkcji.

Wyzwanie 2: Użyj danych o sprzedaży (z poprzedniego ćwiczenia) i spróbuj przewidzieć sprzedaż w następnym miesiącu dla każdego produktu, korzystając z prostych metod (np. średnia ruchoma).

Dalsza Nauka: Gdzie Szukać Więcej?

  • Dokumentacja NumPy: https://numpy.org/doc/stable/ - Kompleksowy przewodnik po NumPy.
  • Dokumentacja Pandas: https://pandas.pydata.org/docs/ - Oficjalna dokumentacja Pandas.
  • Kursy Online: Platformy takie jak Coursera, edX, Udemy oferują kursy z Data Science, które pogłębiają wiedzę o NumPy i Pandas.
  • Książki: "Python dla analizy danych" Wes McKinney (twórca Pandas) to świetna pozycja.
  • Projekty Praktyczne: Spróbuj analizować dane z otwartych źródeł (np. dane o wypadkach drogowych w Polsce, dane pogodowe) - to najlepszy sposób na naukę.

Powodzenia w dalszej nauce! Pamiętaj, praktyka czyni mistrza!

Interactive Exercises

Tworzenie Tablic NumPy

Stwórz tablicę NumPy o wymiarach 3x3 wypełnioną losowymi liczbami całkowitymi z zakresu od 1 do 10. Oblicz sumę wszystkich elementów tablicy.

Wczytywanie i Analiza Danych Sprzedaży

Utwórz plik CSV zawierający dane o sprzedaży (np. produkt, cena, ilość). Wczytaj plik do DataFrame Pandas i oblicz łączną wartość sprzedaży dla każdego produktu.

Filtrowanie Danych

Mając DataFrame z danymi o sprzedaży, przefiltruj dane tak, aby wyświetlić tylko te produkty, których cena jest powyżej średniej ceny wszystkich produktów.

Refleksja nad danymi

Pomyśl, jakie pytania biznesowe można by zadać, mając do dyspozycji dane o sprzedaży. Jak Pandas i NumPy mogą pomóc w znalezieniu odpowiedzi na te pytania?

Knowledge Check

Question 1: Która z poniższych bibliotek jest przeznaczona do obliczeń numerycznych w Pythonie?

Question 2: Jakiego typu danych używa NumPy do przechowywania danych?

Question 3: Który z poniższych elementów jest centralnym obiektem w bibliotece Pandas?

Question 4: Jakiego polecenia używamy do wczytywania danych z pliku CSV do DataFrame Pandas?

Question 5: Która funkcja w Pandas służy do sortowania danych?

Practical Application

Wyobraźmy sobie, że pracujesz dla sklepu internetowego. Masz dostęp do danych o sprzedaży produktów. Wykorzystując NumPy i Pandas, możesz analizować, które produkty sprzedają się najlepiej, jakie są trendy sprzedaży i jakie są średnie ceny produktów. Możesz też tworzyć raporty i wizualizacje, aby pomóc w podejmowaniu decyzji biznesowych.

Key Takeaways

Next Steps

Przygotuj się do lekcji poświęconej wizualizacji danych w Pythonie. Zapoznaj się z biblioteką Matplotlib i poszukaj przykładów wykresów i diagramów.

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 4)