**Biblioteki NumPy i Matplotlib

Dzisiaj zagłębimy się w dwa kluczowe narzędzia dla każdego Data Scientista: biblioteki NumPy i Matplotlib. Nauczymy się, jak efektywnie manipulować danymi numerycznymi i wizualizować je, co stanowi fundament każdego projektu związanego z głębokim uczeniem.

Learning Objectives

  • Zrozumienie i użycie podstawowych funkcjonalności biblioteki NumPy do operacji na tablicach.
  • Tworzenie i manipulacja danymi w wielowymiarowych tablicach za pomocą NumPy.
  • Generowanie prostych wykresów i wizualizacji danych za pomocą Matplotlib.
  • Orientacja w środowisku pracy i zrozumienie przepływu danych w kontekście Data Science.

Lesson Content

Wprowadzenie do NumPy: Fundament Operacji Numerycznych

NumPy (Numerical Python) to podstawowa biblioteka w Pythonie dla obliczeń numerycznych. Centralnym elementem NumPy jest obiekt ndarray, czyli wielowymiarowa tablica. To właśnie na niej będziemy wykonywać większość naszych operacji. Zamiast operować na listach Pythona, NumPy pozwala na znacznie szybsze i efektywniejsze obliczenia, szczególnie w przypadku dużych zbiorów danych.

Tworzenie tablic NumPy:

import numpy as np

# Z listy:
lista = [1, 2, 3, 4, 5]
tablica = np.array(lista)
print(tablica)

# Z zakresu:
tablica_zakres = np.arange(0, 10, 2) # od 0 do 10 (nie włącznie), co 2
print(tablica_zakres)

# Z zerami:
tablica_z_zerami = np.zeros((2, 3)) # tablica 2x3 wypełniona zerami
print(tablica_z_zerami)

# Z jedynkami:
tablica_z_jedynkami = np.ones((3, 3))
print(tablica_z_jedynkami)

Podstawowe operacje na tablicach:

# Dodawanie:
tablica1 = np.array([1, 2, 3])
tablica2 = np.array([4, 5, 6])
wynik_dodawania = tablica1 + tablica2
print(wynik_dodawania)

# Mnożenie przez skalar:
tablica = np.array([1, 2, 3])
wynik_mnozenia = tablica * 2
print(wynik_mnozenia)

# Operacje element po elemencie:
tablica = np.array([1, 2, 3])
wynik_kwadratu = tablica ** 2
print(wynik_kwadratu)

Praca z Wielowymiarowymi Tablicami i Indeksowaniem

W głębokim uczeniu często będziemy pracować z danymi w postaci wielowymiarowych tablic (np. obrazy jako tablice pikseli). NumPy umożliwia efektywne operacje na takich danych.

Tworzenie tablic wielowymiarowych:

import numpy as np

tablica_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(tablica_2d)
print(tablica_2d.shape) # Wyświetla rozmiar tablicy (wiersze, kolumny)

Indeksowanie i Wycinanie (Slicing):

# Dostęp do elementu:
element = tablica_2d[0, 1] # element z pierwszego wiersza, drugiej kolumny
print(element)

# Wycinanie wierszy:
wiersze = tablica_2d[0:2, :] # dwa pierwsze wiersze, wszystkie kolumny
print(wiersze)

# Wycinanie kolumn:
kolumny = tablica_2d[:, 0:2] # wszystkie wiersze, dwie pierwsze kolumny
print(kolumny)

Wprowadzenie do Matplotlib: Wizualizacja Danych

Matplotlib to biblioteka do tworzenia wykresów i wizualizacji danych. Jest niezbędna do analizy danych i prezentacji wyników. Używamy jej do tworzenia wykresów liniowych, punktowych, słupkowych, histogramów i wielu innych.

import matplotlib.pyplot as plt

# Wykres liniowy:
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 1, 3, 5])
plt.plot(x, y)  # tworzy wykres
plt.title("Prosty Wykres")
plt.xlabel("Oś X")
plt.ylabel("Oś Y")
plt.show() # wyświetla wykres

# Wykres punktowy:
plt.scatter(x, y)
plt.title("Wykres Punktowy")
plt.xlabel("Oś X")
plt.ylabel("Oś Y")
plt.show()

Dodatkowe funkcje Matplotlib:

  • plt.title(): Dodaje tytuł do wykresu.
  • plt.xlabel(): Dodaje etykietę do osi X.
  • plt.ylabel(): Dodaje etykietę do osi Y.
  • plt.legend(): Dodaje legendę do wykresu (jeśli mamy kilka serii danych).
  • plt.grid(): Dodaje siatkę do wykresu.

Deep Dive

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

Rozszerzone Materiały Edukacyjne: Data Scientist - Głębokie Uczenie (Dzień 2)

Podsumowanie Dnia 2: NumPy i Matplotlib - Fundamenty Głębokiego Uczenia

Wczoraj poznaliśmy podstawy bibliotek NumPy i Matplotlib. Dowiedzieliśmy się, jak manipulować danymi numerycznymi za pomocą tablic NumPy i jak je wizualizować za pomocą Matplotlib. Dziś pogłębimy naszą wiedzę, aby jeszcze lepiej przygotować się do świata Data Science!

🤿 Deep Dive Section: Zaawansowane Koncepcje i Alternatywne Perspektywy

Zaawansowane Operacje na Tablicach NumPy

NumPy oferuje o wiele więcej niż tylko podstawowe operacje arytmetyczne. Pomyśl o takich funkcjach, jak:

  • Broadcasting: Automatyczne dopasowywanie kształtów tablic podczas operacji arytmetycznych. To niesamowicie przydatne, gdy chcesz wykonać operację na tablicy i skalarze, lub na dwóch tablicach o różnych, ale kompatybilnych kształtach. Pomyśl o dodawaniu wartości do każdego piksela w obrazie cyfrowym (matrycy danych).
  • Maskowanie: Tworzenie tablic logicznych (mask) opartych na kryteriach (np. wartościach powyżej określonego progu). Umożliwia to selektywne operacje na danych.
  • Indeksowanie zaawansowane: Wykorzystanie tablic integer lub boolean do indeksowania. Umożliwia to selekcję złożonych podzbiorów danych.
  • Funkcje UFunc: Funkcje uniwersalne (ufunc) działające na tablicach element po elemencie, np. np.sin(), np.cos().

Wizualizacja Danych: Więcej Niż Tylko Wykresy

Matplotlib to nie tylko linia prosta. Rozważ:

  • Dostosowywanie Wykresów: Etykiety, legendy, tytuły, osie – naucz się je odpowiednio formatować, aby Twoje wykresy były czytelne i informatywne.
  • Wykresy Rozproszenia (Scatter Plots): Użyteczne do analizy korelacji między dwoma zmiennymi.
  • Histogramy: Pokazują rozkład danych.
  • Wykresy Konturowe (Contour Plots): Przydatne do wizualizacji danych trójwymiarowych na płaszczyźnie.
  • Wykresy 3D: Matplotlib potrafi generować wykresy trójwymiarowe, które mogą być pomocne w wizualizacji danych przestrzennych.

🏋️ Bonus Exercises

Ćwiczenie 1: Broadcasting w Akcji

Stwórz tablicę NumPy o wymiarach (3, 4) wypełnioną losowymi liczbami całkowitymi. Dodaj do niej skalar 5. Jak wygląda wynik? Spróbuj dodać wektor o wymiarach (1, 4). Wyjaśnij, co się dzieje.

Podpowiedź: Użyj np.random.randint() do generowania liczb losowych.

Ćwiczenie 2: Maskowanie i Selekcja Danych

Utwórz tablicę NumPy z 100 losowymi liczbami z rozkładu normalnego. Zastosuj maskę, aby wybrać tylko te elementy, które są większe niż 0. Wyświetl te elementy. Oblicz średnią wartość tych elementów.

Podpowiedź: Użyj np.random.normal() i operatorów porównania.

🌍 Real-World Connections

Umiejętności zdobyte dzisiaj znajdują zastosowanie w wielu obszarach:

  • Przetwarzanie Obrazów: Obrazy to w rzeczywistości macierze pikseli. NumPy jest kluczowe w manipulacji i analizie obrazów. (Np. poprawianie jakości zdjęć z wakacji).
  • Analiza Danych Finansowych: Dane finansowe często występują w postaci tablic.
  • Przetwarzanie Sygnałów: Dźwięk i inne sygnały mogą być reprezentowane jako tablice.
  • Głębokie Uczenie: Biblioteki takie jak TensorFlow i PyTorch bazują na NumPy do operacji na danych.

🚀 Challenge Yourself

Spróbuj następującego wyzwania:

  • Zaawansowana Wizualizacja: Stwórz wykres rozproszenia (scatter plot), który wizualizuje dane z pliku CSV (możesz pobrać dowolny publiczny z internetu, np. dane o temperaturze w Polsce). Dostosuj kolory i rozmiary punktów na podstawie innej kolumny w danych. Dodaj tytuł i etykiety osi.

📚 Further Learning

Kontynuuj eksplorację tych tematów:

  • Biblioteka Pandas: Potężna biblioteka do analizy danych, zbudowana na NumPy.
  • Biblioteka Seaborn: Bardziej zaawansowana biblioteka do wizualizacji danych, oparta na Matplotlib.
  • Ćwiczenia z Kaggle: Wykorzystaj platformę Kaggle do praktycznego zastosowania NumPy i Matplotlib w analizie danych.
  • Tutoriale NumPy i Matplotlib: Wiele dostępnych online, np. na oficjalnych stronach bibliotek.

Interactive Exercises

Ćwiczenie 1: Manipulacja Tablicami NumPy

Stwórz tablicę NumPy z liczbami od 1 do 10. Następnie pomnóż wszystkie elementy tablicy przez 3. Wypisz wynik na ekran.

Ćwiczenie 2: Indeksowanie i Wycinanie

Stwórz tablicę 3x3 wypełnioną losowymi liczbami. Wyciągnij z niej: a) pierwszy wiersz, b) drugą kolumnę. Wyświetl wyniki.

Ćwiczenie 3: Prosta Wizualizacja z Matplotlib

Wykorzystując NumPy, stwórz dwie tablice: x zawierającą liczby od 0 do 10, y zawierającą kwadraty tych liczb. Narysuj wykres liniowy tych danych za pomocą Matplotlib. Dodaj tytuł wykresu i etykiety osi.

Knowledge Check

Question 1: Jaka biblioteka w Pythonie jest podstawą dla obliczeń numerycznych?

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

Question 3: Które polecenie służy do wyświetlenia wykresu w Matplotlib?

Question 4: Które polecenie w NumPy tworzy tablicę wypełnioną zerami o wymiarach (2, 3)?

Question 5: Co robi metoda `shape` dla tablicy NumPy?

Practical Application

Wyobraź sobie, że jesteś analitykiem danych w małej firmie e-commerce. Masz dane dotyczące liczby sprzedanych produktów w każdym miesiącu przez ostatni rok. Wykorzystaj NumPy do obliczenia średniej miesięcznej sprzedaży i Matplotlib do wizualizacji danych, np. w postaci wykresu liniowego.

Key Takeaways

Next Steps

Przed następną lekcją przygotuj się na poznanie biblioteki Pandas, która ułatwia zarządzanie i analizę danych w bardziej zaawansowany sposób. Przejrzyj dokumentację Pandas, żeby się z nią zapoznać.

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)