Przetwarzanie i analiza danych w języku Python

Wydanie pierwsze

O książce

Autorzy: Marek Gągolewski, Maciej Bartoszuk, Anna Cena
Rok:2016
Wydanie:pierwsze
Liczba stron:369
Wydawca:Wydawnictwo Naukowe PWN
ISBN:978-83-01-18940-2
Okładka

Link do księgarni PWN
Erraty, materiały uzupełniające

Celem autorów książki jest przygotowanie Czytelnika do samodzielnego przeprowadzenia całego procesu analizy danych, od pobrania i załadowania zbioru, przez jego wstępne przetworzenie i wyczyszczenie, aż po samą analizę, wizualizację wyników i ich interpretację. Wiemy, że pewne rozwiązania, które stworzy Czytelnik, przeznaczone będą do wielokrotnego użytku i tym samym zasługiwać będą na wdrożenie w ramach większych projektów informatycznych. Z tego powodu omawiamy także zestaw dobrych praktyk inżynierii oprogramowania.

Publikacja zawiera szereg przykładów, od prostych do bardziej rozbudowanych, pozwalających zrozumieć nie tylko poszczególne etapy procesu analizy danych, ale również zasady funkcjonowania środowiska Python 3. Czytelna struktura książki umożliwia osobom mającym już pewną wiedzę łatwe wyszukanie tylko wybranych, interesujących ich zagadnień.

„Przetwarzanie i analiza danych w języku Python” jest podsumowaniem doświadczeń autorów wyniesionych z zajęć prowadzonych na Wydziale Matematyki i Nauk Informacyjnych Politechniki Warszawskiej (m.in. dla studentów matematyki i informatyki ze specjalności dotyczących statystyki matematycznej, analizy danych i data science), licznych szkoleń (np. dla Data Science Retreat w Berlinie), a także z pracy naukowo-badawczej w Instytucie Badań Systemowych Polskiej Akademii Nauk oraz w Instytucie Podstaw Informatyki PAN w ramach International Ph.D. Studies Program (m.in. w dziedzinie analizy i agregacji danych).

Poglądowy spis treści

. Przedmowa
1. Wprowadzenie
2. Typy skalarne
3. Typy sekwencyjne i iterowalne
4. Słowniki i zbiory
5. Instrukcje sterujące
6. Funkcje
7. Wektory, macierze i inne tablice
8. Ramki danych
9. Przetwarzanie napisów
10. Przetwarzanie plików i zasobów w internecie
11. Dostęp do baz danych
12. Wizualizacja danych
13. Wnioskowanie statystyczne
14. Wybrane algorytmy uczenia maszynowego
15. Moduły, pakiety i skrypty
16. Programowanie obiektowe
. Bibliografia
. Skorowidz

Szczegółowy spis treści

. Przedmowa
1. Wprowadzenie
1.1. Język i środowisko Python
1.1.1. Instalacja dystrybucji środowiska Python
1.1.2. Instalacja pakietów
1.2. Notatniki Jupyter
1.2.1. Tryby pracy
1.2.2. Najważniejsze skróty klawiszowe
1.2.3. Podstawy języka Markdown
1.3. Pierwsze kroki w języku Python
2. Typy skalarne
2.1. Liczby
2.1.1. Operatory arytmetyczne
2.1.2. Konwersja typów
2.1.3. Tworzenie obiektów nazwanych
2.1.4. Funkcje wbudowanie
2.1.5. Pola i metody
2.1.6. Arytmetyka zmiennopozycyjna
2.2. Wartości logiczne
2.2.1. Operatory relacyjne
2.2.2. Operatory logiczne
2.3. Napisy
2.3.1. Tworzenie napisów
2.3.2. Podstawowe operacje na napisach
3. Typy sekwencyjne i iterowalne
3.1. Podstawowe rodziny obiektów typu sekwencyjnego
3.1.1. Listy i krotki
3.1.2. Zakresy
3.1.3. Napisy
3.2. Zarządzanie elementami
3.2.1. Wybieranie elementów
3.2.2. Modyfikacja elementów
3.2.3. Dodawanie i usuwanie elementów
3.2.4. Kopiowanie referencji, kopiowanie płytkie a głębokie
3.3. Obiekty iterowalne
3.4. Działania na obiektach iterowalnych i typu sekwencyjnego
3.4.1. Podstawowe metody i funkcje
3.4.2. Krotki identyfikatorów po lewej stronie operatora przypisania
3.4.3. Wyrażenia listotwórcze i generatory
3.4.4. Formatowanie napisów
4. Słowniki i zbiory
4.1. Słowniki
4.1.1. Tworzenie słowników
4.1.2. Podstawowe metody i funkcje
4.2. Zbiory
4.2.1. Tworzenie zbiorów
4.2.2. Podstawowe metody i funkcje
5. Instrukcje sterujące
5.1. Instrukcja warunkowa
5.2. Pętle
5.2.1. Pętla while
5.2.2. Pętla for
5.2.3. Instrukcje break i continue oraz blok else w pętlach
5.3. Obsługa wyjątków
5.3.1. Zgłaszanie wyjątków
5.3.2. Rodzaje wyjątków
5.3.3. Wychwytywanie wyjątków
6. Funkcje
6.1. Definiowanie funkcji
6.1.1. Dokumentowanie funkcji
6.1.2. Wartość zwracana
6.1.3. Wyrażenia lambda
6.2. Parametry i argumenty
6.2.1. Sposób przekazywania argumentów
6.2.2. Sprawdzanie poprawności argumentów
6.2.3. Dopasowywanie argumentów
6.2.4. Parametry z argumentami domyślnymi
6.2.5. Rozpakowywanie argumentów
6.2.6. Parametry specjalne *args i **kwargs
6.3. Zasięg zmiennych
6.3.1. Zmienne lokalne
6.3.2. Zmienne globalne
6.3.3. Zmienne nielokalne, fabryki funkcji i domknięcia
6.4. Pakiety
7. Wektory, macierze i inne tablice
7.1. Tworzenie i reprezentacja tablic
7.1.1. Funkcja array()
7.1.2. Reprezentacja tablic
7.1.3. Typ przechowywanych elementów
7.1.4. Tworzenie tablic specjalnego rodzaju
7.1.5. Łączenie tablic
7.2. Podstawowe metody i funkcje
7.2.1. Operatory arytmetyczne. Uzgadnianie kształtów
7.2.2. Operacje relacyjne i logiczne
7.2.3. Zwektoryzowane funkcje matematyczne
7.2.4. Agregacja danych
7.2.5. Inne operacje
7.3. Indeksowanie tablic
7.3.1. Indeksowanie wektorów
7.3.2. Indeksowanie macierzy
7.3.3. Indeksowanie tablic N-wymiarowych
7.3.4. Wyszukiwanie indeksów elementów spełniających zadane kryteria
8. Ramki danych
8.1. Tworzenie ramek danych
8.1.1. Konstruktor klasy DataFrame
8.1.2. Importowanie ramek danych z plików i innych źrodeł
8.1.3. Odczytywanie podstawowych informacji o ramkach danych
8.2. Zmienne, czyli obiekty typu Series
8.2.1. Wydobywanie poszczególnych zmiennych
8.2.2. Tworzenie i reprezentacja zmiennych
8.2.3. Zmienne typu data i czas
8.2.4. Zmienne jakościowe i porządkowe
8.3. Etykiety, czyli obiekty typu Index
8.3.1. Etykietowanie wierszy i kolumn
8.3.2. Etykiety hierarchiczne
8.4. Indeksowanie zmiennych i ramek danych
8.4.1. Wybór elementów pojedynczej zmiennej
8.4.2. Wybór podzbioru wierszy i kolumn ramki danych
8.5. Wybrane operacje
8.5.1. Dodawanie i usuwanie kolumn i wierszy
8.5.2. Przekształcanie zmiennych
8.5.3. Podsumowania ramek danych i zmiennych
8.5.4. Sortowanie ramek danych
8.5.5. Zmiana kształtu ramek danych
8.5.6. Obserwacje brakujące
9. Przetwarzanie napisów
9.1. Operacje na pojedynczych napisach
9.1.1. Podstawowe stałe napisowe i operacje na pojedynczych znakach
9.1.2. Wyszukiwanie ustalonego wzorca
9.1.3. Transliteracja
9.1.4. Testowanie, czy wszystkie znaki należą do podanej kategorii
9.1.5. Dzielenie i sklejanie tekstu
9.2. Wyszukiwanie wzorca przy użyciu wyrażeń regularnych
9.2.1. Definiowanie wyrażeń regularnych
9.2.2. Przegląd funkcji
9.2.3. Wydzielone podwyrażenia i odwołania do nich
9.3. Zwektoryzowane operacje na obiektach Index i Series
10. Przetwarzanie plików i zasobów w internecie
10.1. Operacje na drzewie katalogów
10.1.1. Ścieżki dostępu
10.1.2. Wyszukiwanie plików na dysku
10.2. Przetwarzanie plików
10.2.1. Otwieranie pliku w różnych trybach
10.2.2. Odczytywanie zawartości pliku
10.2.3. Zapisywanie danych do pliku
10.2.4. Serializacja obiektów
10.2.5. Popularne formaty plików
10.3. Pozyskiwanie danych ze stron internetowych
10.3.1. Wydobywanie tabel w postaci ramek danych
10.3.2. Ręczne przetwarzanie kodu źródłowego strony
10.3.3. Parsowanie kodu HTML i wydobywanie pojedynczych elementów
11. Dostęp do baz danych
11.1. Przykładowa baza danych: nycflights13
11.2. Obsługa baz danych
11.2.1. Połączenie z bazą danych
11.2.2. Eksportowanie danych do bazy
11.2.3. Odczytywanie danych z bazy
11.2.4. Funkcje z pakietu pandas
11.3. Ćwiczenia
11.3.1. Wybór unikatowych podzbiorów kolumn
11.3.2. Agregacja danych w podgrupach
11.3.3. Filtrowanie danych wejściowych i wyników
11.3.4. Sortowanie wyników
11.3.5. Operacje teoriomnogościowe
11.3.6. Złączenia
12. Wizualizacja danych
12.1. Rysowanie podstawowych obiektów
12.1.1. Łamane
12.1.2. Punkty i różne symbole
12.1.3. Wielokąty
12.1.4. Adnotacje tekstowe
12.2. Parametry graficzne
12.2.1. Sposoby kreślenia punktów i odcinków
12.2.2. Sposoby określania barw
12.2.3. Napisy formatujące
12.2.4. Ustawienia osi
12.3. Rysunki jako kombinacje obiektów podstawowych
12.3.1. Wiele obiektów na jednym wykresie
12.3.2. Legenda
12.3.3. Wiele wykresów na jednej stronie
12.4. Graficzna prezentacja danych
12.4.1. Wybrane wykresy dla danych jakościowych
12.4.2. Wybrane wykresy dla danych ilościowych
12.4.3. Wybrane wykresy dla funkcji dwuwymiarowych
13. Wnioskowanie statystyczne
13.1. Wybrane rozkłady prawdopodobieństwa
13.1.1. Podstawowe rodziny rozkładów
13.1.2. Generowanie liczb pseudolosowych
13.2. Estymacja parametrów i charakterystyk rozkładów
13.2.1. Estymacja punktowa
13.2.2. Estymacja przedziałowa
13.3. Wykorzystanie testów statystycznych w analizie danych
13.3.1. Testy zgodności
13.3.2. Testy parametryczne
13.3.3. Testy nieparametryczne
14. Wybrane algorytmy uczenia maszynowego
14.1. Przykładowy zbiór danych: winequality
14.2. Analiza regresji
14.2.1. Regresja liniowa
14.2.2. Ocena jakości dopasowania modelu
14.2.3. Model wielomianowy
14.2.4. Wybór zmiennych do modelu
14.3. Klasyfikacja
14.3.1. Metoda k-najbliższych sąsiadów
14.3.2. Ocena jakości klasyfikatora
14.3.3. Drzewa decyzyjne i lasy losowe
14.3.4. Porównanie krzyżowe
14.4. Analiza skupień
14.4.1. Algorytm k-średnich
14.4.2. Hierarchiczna analiza skupień
15. Moduły, pakiety i skrypty
15.1. Projekty wielomodułowe
15.1.1. Środowisko programistyczne Spyder
15.1.2. Tworzenie i ładowanie modułów
15.1.3. Tworzenie i ładowanie pakietów
15.1.4. Ścieżki wyszukiwania modułów i pakietów
15.2. Skrypty
15.2.1. Uruchomienie skryptu z poziomu powłoki
15.2.2. Przekazywanie argumentów
15.2.3. Skrypty a moduły. Testy jednostkowe
16. Programowanie obiektowe
16.1. Klasy i relacje między nimi
16.1.1. Definiowanie klasy
16.1.2. Dziedziczenie
16.2. Metody
16.2.1. Przeciążanie metod. Polimorfizm
16.2.2. Metody i pola statyczne
16.2.3. Metody specjalne
16.3. Pola
16.3.1. Definiowanie z góry ustalonych pól w klasie
16.3.2. Pola prywatne, chronione i publiczne
. Bibliografia
. Skorowidz