Opis
Książka stawia sobie za cel przygotować 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. Książka 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ę na łatwe wyszukanie i poznanie tylko interesujących ich zagadnień. „Przetwarzanie i analiza danych w języku Python” jest owocem doświadczenia autorów w prowadzeniu zajęć 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 pracy naukowo-badawczej w Instytucie Badań Systemowych Polskiej Akadamii Nauk oraz w ramach International Ph.D. Studies Program w Instytucie Podstaw Informatyki PAN (m.in. w dziedzinie analizy i agregacji danych). Spis treściPrzedmowa XI I Podstawy języka Python 1 1. Wprowadzenie 3 1.1. Język i środowisko Python 3 1.1.1. Instalacja dystrybucji środowiska Python 3 1.1.2. Instalacja pakietów 5 1.2. Notatniki Jupyter 7 1.2.1. Tryby pracy 7 1.2.2. Najważniejsze skróty klawiszowe 10 1.2.3. Podstawy języka Markdown 10 1.3. Pierwsze kroki w języku Python 12 2. Typy skalarne 16 2.1. Liczby 16 2.1.1. Operatory arytmetyczne 18 2.1.2. Konwersja typów 21 2.1.3. Tworzenie obiektów nazwanych 22 2.1.4. Funkcje wbudowane 23 2.1.5. Polai metody 24 2.1.6. Arytmetyka zmiennopozycyjna 25 2.2. Wartości logiczne 26 2.2.1. Operatory relacyjne 27 2.2.2. Operatory logiczne 28 2.3. Napisy 28 2.3.1. Tworzenie napisów 28 2.3.2. Podstawowe operacje na napisach 30 3. Typy sekwencyjne i iterowalne 32 3.1. Podstawowe rodziny obiektów typu sekwencyjnego 33 3.1.1. Listy i krotki 33 3.1.2. Zakresy 35 3.1.3. Napisy 35 3.2. Zarządzanie elementami 35 3.2.1. Wybieranie elementów 35 3.2.2. Modyfikacjaelementów 38 3.2.3. Dodawanie i usuwanie elementów 39 3.2.4. Kopiowanie referencji, kopiowanie płytkie a głębokie 41 3.3. Obiekty iterowalne 45 3.4. Działania na obiektach iterowalnych i typu sekwencyjnego 47 3.4.1. Podstawowe metody i funkcje 47 3.4.2. Krotk i identyfikatorów po lewej stronie operatora przypisania 50 3.4.3. Wyrażenia listotwórcze i generatory 51 3.4.4. Formatowanie napisów 54 4. Słowniki i zbiory 56 4.1. Słowniki 56 4.1.1. Tworzenie słowników 56 4.1.2. Podstawowe metody i funkcje 58 4.2. Zbiory 61 4.2.1. Tworzenie zbiorów 61 4.2.2. Podstawowe metody i funkcje 62 5. Instrukcje sterujące 64 5.1. Instrukcja warunkowa 64 5.2. Pętle 66 5.2.1. Pętla while 66 5.2.2. Pętla for 67 5.2.3. Instrukcje break i continue oraz blok else w pętlach 69 5.3. Obsługa wyjątków 73 5.3.1. Zgłaszanie wyjątków 74 5.3.2. Rodzaje wyjątków 74 5.3.3. Wychwytywanie wyjątków 75 6. Funkcje 77 6.1. Definiowanie funkcji 77 6.1.1. Dokumentowanie funkcji 78 6.1.2. Wartość zwracana 79 6.1.3. Wyrażenia lambda 80 6.2. Parametry i argumenty 81 6.2.1. Sposób przekazywania argumentów 81 6.2.2. Sprawdzanie poprawności argumentów 82 6.2.3. Dopasowywanie argumentów 84 6.2.4. Parametry z argumentami domyślnymi 84 6.2.5. Rozpakowywanie argumentów 85 6.2.6. Parametry specjalne *args i **kwargs 86 6.3. Zasięg zmiennych 88 6.3.1. Zmienne lokalne 88 6.3.2. Zmienne globalne 88 6.3.3. Zmienne nielokalne, fabryki funkcji i domknięcia 90 6.4. Pakiety 92 II Przetwarzanie danych 95 7. Wektory, macierze i inne tablice 97 7.1. Tworzenie i reprezentacja tablic 97 7.1.1. Funkcja array() 98 7.1.2. Reprezentacja tablic 100 7.1.3. Typ przechowywanych elementów 101 7.1.4. Tworzenie tablic specjalnego rodzaju 103 7.1.5. Łączenie tablic 106 7.2. Podstawowe metody i funkcje 108 7.2.1. Operatory arytmetyczne. Uzgadnianie kształtów 108 7.2.2. Operacje relacyjne i logiczne 113 7.2.3. Zwektoryzowane funkcje matematyczne 115 7.2.4. Agregacja danych 118 7.2.5. Inne operacje 121 7.3. Indeksowanie tablic 123 7.3.1. Indeksowanie wektorów 123 7.3.2. Indeksowanie macierzy 128 7.3.3. Indeksowanie tablic N-wymiarowych 132 7.3.4. Wyszukiwanie indeksów elementów spełniających zadane kryteria 134 8. Ramki danych 137 8.1. Tworzenie ramek danych 138 8.1.1. Konstruktor klasy DataFrame 138 8.1.2. Importowanie ramek danych z plików i innych źrodeł 139 8.1.3. Odczytywanie podstawowych informacji o ramkach danych 140 8.2. Zmienne, czyli obiekty typu Series 143 8.2.1. Wydobywanie poszczególnych zmiennych 143 8.2.2. Tworzenie i reprezentacja zmiennych 144 8.2.3. Zmienne typu data i czas 145 8.2.4. Zmienne jakoś