Przetwarzanie i analiza danych w języku Python
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).
- Kategorie:
- Język wydania: polski
- ISBN: 978-83-01-18940-2
- ISBN druku: 978-83-01-18940-2
- Liczba stron: 400
-
Sposób dostarczenia produktu elektronicznegoProdukty elektroniczne takie jak Ebooki czy Audiobooki są udostępniane online po opłaceniu zamówienia kartą lub przelewem na stronie Twoje konto > Biblioteka.Pliki można pobrać zazwyczaj w ciągu kilku-kilkunastu minut po uzyskaniu poprawnej autoryzacji płatności, choć w przypadku niektórych publikacji elektronicznych czas oczekiwania może być nieco dłuższy.Sprzedaż terytorialna towarów elektronicznych jest regulowana wyłącznie ograniczeniami terytorialnymi licencji konkretnych produktów.
-
Ważne informacje techniczneMinimalne wymagania sprzętowe:procesor: architektura x86 1GHz lub odpowiedniki w pozostałych architekturachPamięć operacyjna: 512MBMonitor i karta graficzna: zgodny ze standardem XGA, minimalna rozdzielczość 1024x768 16bitDysk twardy: dowolny obsługujący system operacyjny z minimalnie 100MB wolnego miejscaMysz lub inny manipulator + klawiaturaKarta sieciowa/modem: umożliwiająca dostęp do sieci Internet z prędkością 512kb/sMinimalne wymagania oprogramowania:System Operacyjny: System MS Windows 95 i wyżej, Linux z X.ORG, MacOS 9 lub wyżej, najnowsze systemy mobilne: Android, iPhone, SymbianOS, Windows MobilePrzeglądarka internetowa: Internet Explorer 7 lub wyżej, Opera 9 i wyżej, FireFox 2 i wyżej, Chrome 1.0 i wyżej, Safari 5Przeglądarka z obsługą ciasteczek i włączoną obsługą JavaScriptZalecany plugin Flash Player w wersji 10.0 lub wyżej.Informacja o formatach plików:
- PDF - format polecany do czytania na laptopach oraz komputerach stacjonarnych.
- EPUB - format pliku, który umożliwia czytanie książek elektronicznych na urządzeniach z mniejszymi ekranami (np. e-czytnik lub smartfon), dając możliwość dopasowania tekstu do wielkości urządzenia i preferencji użytkownika.
- MOBI - format zapisu firmy Mobipocket, który można pobrać na dowolne urządzenie elektroniczne (np.e-czytnik Kindle) z zainstalowanym programem (np. MobiPocket Reader) pozwalającym czytać pliki MOBI.
- Audiobooki w formacie MP3 - format pliku, przeznaczony do odsłuchu nagrań audio.
Rodzaje zabezpieczeń plików:- Watermark - (znak wodny) to zaszyfrowana informacja o użytkowniku, który zakupił produkt. Dzięki temu łatwo jest zidentyfikować użytkownika, który rozpowszechnił produkt w sposób niezgodny z prawem. Ten rodzaj zabezpieczenia jest zdecydowanie bardziej przyjazny dla użytkownika, ponieważ aby otworzyć książkę zabezpieczoną Watermarkiem nie jest potrzebne konto Adobe ID oraz autoryzacja urządzenia.
- Brak zabezpieczenia - część oferowanych w naszym sklepie plików nie posiada zabezpieczeń. Zazwyczaj tego typu pliki można pobierać ograniczoną ilość razy, określaną przez dostawcę publikacji elektronicznych. W przypadku zbyt dużej ilości pobrań plików na stronie WWW pojawia się stosowny komunikat.
Przedmowa 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ściowe i porządkowe 146 8.3. Etykiety, czyli obiekty typu Index 150 8.3.1. Etykietowanie wierszy i kolumn 151 8.3.2. Etykiety hierarchiczne 152 8.4. Indeksowanie zmiennych i ramek danych 154 8.4.1. Wybór elementów pojedynczej zmiennej 154 8.4.2. Wybór podzbioru wierszy i kolumn ramki danych 160 8.5. Wybrane operacje 164 8.5.1. Dodawanie oraz usuwanie kolumn i wierszy 164 8.5.2. Przekształcanie zmiennych 166 8.5.3. Podsumowania ramek danych i zmiennych 168 8.5.4. Sortowanie ramek danych 172 8.5.5. Zmiana kształtu ramek danych 173 8.5.6. Obserwacje brakujące 176 9. Przetwarzanie napisów 179 9.1. Operacje na pojedynczych napisach 179 9.1.1. Podstawowe stałe napisowe i operacje na pojedynczych znakach 180 9.1.2. Wyszukiwanie ustalonego wzorca 182 9.1.3. Translacja znaków 183 9.1.4. Sprawdzanie, czy wszystkie znaki nalezą˛ do podanej kategorii 184 9.1.5. Dzielenie i sklejanie tekstu 184 9.2. Wyszukiwanie wzorca przy użyciu wyrażeń regularnych 185 9.2.1. Definiowanie wyrażeń regularnych 186 9.2.2. Przegląd funkcji 188 9.2.3. Wydzielone podwyrażenia i odwołania do nich 189 9.3. Zwektoryzowane operacje na obiektach Index i Series 190 10. Przetwarzanie plików i zasobów w internecie 196 10.1. Operacje na drzewie katalogów 196 10.1.1. Ścieżki dostępu 196 10.1.2. Wyszukiwanie plików na dysku 198 10.2. Przetwarzanie plików 200 10.2.1. Otwieranie pliku w różnych trybach 200 10.2.2. Odczytywanie zawartości pliku 202 10.2.3. Zapisywanie danych do pliku 203 10.2.4. Serializacja obiektów 204 10.2.5. Popularne formaty plików 205 10.3. Pozyskiwanie danych ze stron internetowych 208 10.3.1. Wydobywanie tabel w postaci ramek danych 209 10.3.2. Ręczne przetwarzanie kodu źródłowego strony 209 10.3.3. Parsowanie kodu HTML i wydobywanie pojedynczych elementów 211 11. Dostęp do baz danych 215 11.1. Przykładowa baza danych: nycflights13 215 11.2. Obsługa baz danych 218 11.2.1. Połączenie z bazą danych 218 11.2.2. Eksportowanie danych do bazy 218 11.2.3. Odczytywanie danych z bazy 219 11.2.4. Funkcje z pakietu pandas 220 11.3. Ćwiczenia 221 11.3.1. Wybór unikatowych podzbiorów kolumn 222 11.3.2. Agregacja danych w podgrupach 223 11.3.3. Filtrowanie danych wejściowych i wyników 226 11.3.4. Sortowanie wyników 230 11.3.5. Operacje teoriomnogościowe 232 11.3.6. Złączenia 234 III Analizadanych 237 12. Wizualizacja danych 239 12.1. Rysowanie podstawowych obiektów 240 12.1.1. Łamane 240 12.1.2. Punkty i różne symbole 241 12.1.3. Wielokąty 242 12.1.4. Adnotacje tekstowe 243 12.2. Parametry graficzne 244 12.2.1. Sposoby kreślenia punktów i odcinków 244 12.2.2. Sposoby określania barw 244 12.2.3. Napisy formatujące 246 12.2.4. Ustawienia osi 247 12.3. Rysunki jako kombinacje obiektów podstawowych 248 12.3.1. Wiele obiektów na jednym wykresie 248 12.3.2. Legenda 250 12.3.3. Wiele wykresów na jednej stronie 251 12.4. Graficzna prezentacja danych 255 12.4.1. Wybrane wykresy dla danych jakościowych 255 12.4.2. Wybrane wykresy dla danych ilościowych 258 12.4.3. Wybrane wykresy dla funkcji dwuwymiarowych 262 13. Wnioskowanie statystyczne 265 13.1. Wybrane rozkłady prawdopodobieństwa 265 13.1.1. Podstawowe rodziny rozkładów 265 13.1.2. Generowanie liczb pseudolosowych 273 13.2. Estymacja parametrów i charakterystyk rozkładów 275 13.2.1. Estymacja punktowa 276 13.2.2. Estymacja przedziałowa 278 13.3. Wykorzystanie testów statystycznych w analizie danych 280 13.3.1. Testy zgodności 281 13.3.2. Testy parametryczne 290 13.3.3. Testy nieparametryczne 295 14. Wybrane algorytmy uczenia maszynowego 298 14.1. Przykładowy zbiór danych: winequality 298 14.2. Analiza regresji 300 14.2.1. Regresja liniowa 301 14.2.2. Ocena jakości dopasowania modelu 304 14.2.3. Model wielomianowy 306 14.2.4. Wybór zmiennych do modelu 307 14.3. Klasyfikacja 310 14.3.1. Metoda k-najbliższych sąsiadów 312 14.3.2. Ocena jakości klasyfikatora 312 14.3.3. Drzewa decyzyjne i lasy losowe 315 14.3.4. Porównanie krzyżowe 318 14.4. Analiza skupień 320 14.4.1. Algorytm k-średnich 320 14.4.2. Hierarchiczna analiza skupień 326 IV Tworzenie własnego oprogramowania 329 15. Moduły, pakiety i skrypty 331 15.1. Projekty wielomodułowe 331 15.1.1. Środowisko programistyczne Spyder 331 15.1.2. Tworzenie i ładowanie modułów 332 15.1.3. Tworzenie i ładowanie pakietów 335 15.1.4. Ścieżki wyszukiwania modułów i pakietów 336 15.2. Skrypty 336 15.2.1. Uruchomienie skryptu z poziomu powłoki 337 15.2.2. Przekazywanie argumentów 338 15.2.3. Skrypty a moduły. Testy jednostkowe 339 16. Programowanie obiektowe 343 16.1. Klasy i relacje między nimi 344 16.1.1. Definiowanie klasy 344 16.1.2. Dziedziczenie 346 16.2. Metody 348 16.2.1. Przeciążanie metod. Polimorfizm 348 16.2.2. Metody i pola statyczne 350 16.2.3. Metody specjalne 351 16.3. Pola 357 16.3.1. Definiowanie z góry ustalonych pól w klasie 357 16.3.2. Pola prywatne,chronione i publiczne 358 Bibliografia 361 Skorowidz 363