**Biblioteki NumPy i Pandas

W dzisiejszej lekcji poznasz dwie kluczowe biblioteki w Pythonie: NumPy i Pandas. Nauczysz się, jak efektywnie operować na danych numerycznych i tabelarycznych, co jest fundamentem dla każdego data scientist.

Learning Objectives

  • Rozpoznać różnice i zastosowania bibliotek NumPy i Pandas.
  • Tworzyć i manipulować tablicami NumPy.
  • Wczytywać, przeglądać i analizować dane za pomocą Pandas.
  • Wykonywać podstawowe operacje na danych tabelarycznych, takie jak filtrowanie i agregacja.

Lesson Content

Wprowadzenie do NumPy - Podstawa Pracy z Danymi Numerycznymi

NumPy (Numerical Python) to biblioteka Python, która zapewnia wsparcie dla dużych, wielowymiarowych tablic i macierzy wraz z zestawem funkcji matematycznych do operacji na tych tablicach. Jest fundamentalna w Data Science, ponieważ optymalizuje operacje na liczbach. NumPy jest bardzo szybkie, ponieważ jest zaimplementowane w języku C, a nie Python. Aby zainstalować NumPy, użyj pip install numpy.

Przykład:

import numpy as np

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

ar_2d = np.array([[1, 2, 3], [4, 5, 6]]) # Tworzenie tablicy dwuwymiarowej (macierzy)
print(ar_2d)
print(ar_2d.shape) # Sprawdzenie wymiarów macierzy (wiersze, kolumny)

Operacje na Tablicach NumPy

NumPy oferuje szeroki zakres operacji na tablicach, w tym: operacje arytmetyczne (dodawanie, odejmowanie, mnożenie, dzielenie), operacje logiczne (np. porównywanie elementów), indeksowanie i wycinanie (slicing), oraz funkcje matematyczne (np. sin, cos, sqrt).

Przykład:

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])

# Dodawanie tablic
suma = arr1 + arr2
print(suma)  # Output: [5 7 9]

# Mnożenie tablic
mnozenie = arr1 * arr2
print(mnozenie)  # Output: [ 4 10 18]

# Wycinanie fragmentu tablicy
sliced_arr = arr1[0:2] # elementy od indeksu 0 do 1 (nie wliczając 2)
print(sliced_arr)  # Output: [1 2]

# Funkcja matematyczna
sin_arr = np.sin(arr1)
print(sin_arr)

Wprowadzenie do Pandas - Praca z danymi tabelarycznymi

Pandas to biblioteka Python służąca do manipulacji i analizy danych. Jest zbudowana na NumPy i udostępnia struktury danych, które pozwalają na łatwe zarządzanie i analizę danych tabelarycznych (np. z plików CSV, Excel). Najważniejsze struktury danych w Pandas to Series (jednowymiarowa tablica z etykietami) i DataFrame (dwuwymiarowa tabela).

Przykład:

import pandas as pd

data = {'Nazwa': ['Ania', 'Bartek', 'Celina'], 'Wiek': [25, 30, 28]}
df = pd.DataFrame(data) # Tworzenie DataFrame
print(df)
print(df.head(2)) # Wyświetlenie pierwszych dwóch wierszy

Manipulacja Danymi w Pandas

Pandas umożliwia wykonywanie wielu operacji na danych: wczytywanie danych z plików (CSV, Excel, JSON), filtrowanie danych, sortowanie, grupowanie, łączenie tabel, obliczanie statystyk i wiele innych. Funkcje filtrowania i grupowania są szczególnie przydatne w eksploracji danych.

Przykład:

import pandas as pd

data = {'Nazwa': ['Ania', 'Bartek', 'Celina', 'Dawid'], 'Wiek': [25, 30, 28, 25], 'Miasto': ['Warszawa', 'Kraków', 'Warszawa', 'Wrocław']}
df = pd.DataFrame(data)

# Filtrowanie danych
df_warszawa = df[df['Miasto'] == 'Warszawa']
print(df_warszawa)

# Sortowanie danych
df_posortowane = df.sort_values(by='Wiek', ascending=False)
print(df_posortowane)

# Agregacja (obliczanie średniego wieku dla każdego miasta)
grupa_miasto = df.groupby('Miasto')['Wiek'].mean()
print(grupa_miasto)

Deep Dive

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

Rozszerzona Lekcja: NumPy, Pandas i Świąt Bożego Narodzenia w Kodzie (Dzień 3)

Witaj! Po opanowaniu podstaw NumPy i Pandas, zanurzamy się głębiej w ich możliwości. Dziś nie tylko poszerzymy Twoją wiedzę, ale także pokażemy, jak te narzędzia można wykorzystać w realnych, a nawet świątecznych scenariuszach! Pamiętaj, data science to nie tylko kody, ale też ciekawość i kreatywność.

Deep Dive: Zaawansowane Manipulacje i Analiza Danych

**NumPy: Broadcasting i Maskowanie.** Pamiętasz operacje na tablicach? NumPy ma potężne narzędzie zwane "broadcastingiem". Pozwala na wykonywanie operacji arytmetycznych na tablicach o różnych kształtach, o ile są "kompatybilne". Na przykład, dodawanie skalaru do całej tablicy to broadcasting w akcji! Ponadto, maskowanie (boolean indexing) to świetny sposób na filtrowanie danych na podstawie warunków logicznych.

**Pandas: Zaawansowane Operacje na DataFrame.** Pandas oferuje funkcje grupowania (groupby()), agregacji (agg()), łączenia (merge()) i łączenia (concat()). groupby() pozwala na dzielenie danych na grupy i stosowanie operacji na każdej z nich. agg() pozwala na wykonywanie wielu operacji agregujących jednocześnie. merge() i concat() to potężne narzędzia do łączenia danych z różnych źródeł.

**Świąteczny przykład:** Wyobraź sobie, że masz dane o sprzedaży ozdób choinkowych w różnych sklepach. Możesz użyć groupby(), aby obliczyć średnią sprzedaż każdego rodzaju ozdoby, merge(), by połączyć dane o sprzedaży z danymi o kosztach produkcji, a następnie filtrować dane, by wyświetlić tylko te ozdoby, które przyniosły największy zysk w okresie przedświątecznym.

Kluczowe pojęcia: Broadcasting, maskowanie, groupby(), agg(), merge(), concat().

Bonus Ćwiczenia

Ćwiczenie 1: Broadcasting w Akcji

Stwórz tablicę NumPy zawierającą oceny z 5 przedmiotów dla 3 studentów. Następnie, użyj broadcastingu, aby odjąć średnią ocenę dla każdego studenta od jego ocen.

Ćwiczenie 2: Analiza Danych o Prezentach

Wczytaj do Pandas zestaw danych (możesz go sam stworzyć!), który zawiera informacje o prezentach świątecznych: nazwa, koszt, sklep, kategoria. Użyj groupby(), aby obliczyć średni koszt prezentu w każdej kategorii. Następnie użyj sort_values(), aby posortować wyniki od najdroższych kategorii prezentów.

Real-World Connections: Od Produktów do Wigilii

**Zarządzanie Zapasami:** NumPy i Pandas są kluczowe w analizie danych w łańcuchu dostaw. Firmy używają ich do analizy popytu na produkty, optymalizacji poziomów zapasów i przewidywania przyszłych potrzeb.

**Analiza Finansowa:** W finansach, Pandas jest niezastąpiony w analizie portfeli, badaniu trendów rynkowych i prognozowaniu.

**Marketing i Sprzedaż:** Analiza danych o klientach, segmentacja, analiza efektywności kampanii marketingowych – Pandas i NumPy są fundamentem tych działań. Wyobraź sobie, że analizujesz wyniki kampanii bożonarodzeniowej, aby zoptymalizować przyszłe działania.

Challenge Yourself: Zrób to Sam!

Stwórz symulację sprzedaży prezentów świątecznych w kilku sklepach. Użyj NumPy do generowania losowych danych o sprzedaży. Następnie, użyj Pandas, aby przeanalizować te dane i wygenerować raport pokazujący, które sklepy i które produkty były najpopularniejsze. Spróbuj dodać analizę rentowności, uwzględniając koszty produktów.

Dalsza Eksploracja

  • Scikit-learn: Poznaj podstawy biblioteki scikit-learn, która wykorzystuje NumPy i Pandas do uczenia maszynowego.
  • Wizualizacja Danych: Zbadaj biblioteki takie jak Matplotlib i Seaborn, aby tworzyć wykresy i wizualizacje danych.
  • Zaawansowane Pandas: Sprawdź funkcje takie jak pivot_table() i apply().

Interactive Exercises

Ćwiczenie 1: Tworzenie i Manipulacja Tablicami NumPy

Utwórz tablicę NumPy zawierającą liczby od 1 do 10. Następnie oblicz sumę wszystkich elementów i pomnóż każdy element przez 2. Wykorzystaj funkcje NumPy.

Ćwiczenie 2: Wczytywanie Danych Pandas

Stwórz prosty plik CSV z danymi (np. imiona, wiek, miasto). Wczytaj ten plik do DataFrame Pandas, a następnie wyświetl pierwsze 5 wierszy i podaj podstawowe statystyki (średnia, minimum, maksimum).

Ćwiczenie 3: Filtrowanie i Agregacja Danych w Pandas

Użyj DataFrame z ćwiczenia 2. Filtruj dane, aby wyświetlić tylko osoby z określonego miasta. Następnie pogrupuj dane po mieście i oblicz średni wiek dla każdego miasta.

Knowledge Check

Question 1: Która z bibliotek jest używana głównie do operacji na danych numerycznych?

Question 2: Jak nazywa się dwuwymiarowa struktura danych w Pandas?

Question 3: Która funkcja w NumPy jest używana do tworzenia tablicy wypełnionej zerami?

Question 4: Jak w Pandas wczytać plik CSV?

Question 5: Która z poniższych operacji jest przykładem agregacji w Pandas?

Practical Application

Wyobraź sobie, że pracujesz w sklepie internetowym. Twoim zadaniem jest analiza danych sprzedażowych (dane o produktach, zamówieniach, klientach). Użyj Pandas do wczytania danych z pliku CSV, przeanalizuj je (np. średnia cena zamówienia, top 10 produktów po liczbie sprzedanych sztuk) i wyciągnij wnioski, które pomogą w optymalizacji.

Key Takeaways

Next Steps

Przygotuj się na następną lekcję, która skupi się na wizualizacji danych za pomocą biblioteki Matplotlib i Seaborn. Spróbuj zainstalować te biblioteki i poszukać prostych przykładów wizualizacji.

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)