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.
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.
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.
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ę.
Explore advanced insights, examples, and bonus exercises to deepen understanding.
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.
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 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
).
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)
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)
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.
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).
Powodzenia w dalszej nauce! Pamiętaj, praktyka czyni mistrza!
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.
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.
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.
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?
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.
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.
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.