Szczegóły ebooka

Python dla programistów. Big Data i AI. Studia przypadków

Python dla programistów. Big Data i AI. Studia przypadków

Paul J. Deitel, Harvey Deitel

Ebook

Programiści lubią Pythona. Ujmuje ich wyrazistość, zwięzłość i interaktywność kodu, a także bogata kolekcja narzędzi i bibliotek. Zalety te są uzupełniane przez rozwój innych technologii, zwiększającą się dostępność coraz szybszego sprzętu oraz rosnącą przepustowość internetu. Z kolei to wszystko wiąże się z powstawaniem niewyobrażalnych ilości danych, które trzeba magazynować i efektywnie przetwarzać. Większość innowacji w świecie informatyki koncentruje się wokół danych. A z tymi zadaniami można sobie poradzić dzięki imponującym możliwościom Pythona i jego bibliotek.

Ta książka ułatwi naukę Pythona metodą analizy i eksperymentów. Zawiera ponad 500 przykładów faktycznie wykorzystywanego kodu - od krótkich bloków po kompletne studia przypadków. Pokazano, w jaki sposób można kodować w interpreterze IPython i notatnikach Jupytera. Znalazł się tu obszerny opis Pythona oraz jego instrukcji sterujących i funkcji, omówiono pracę na plikach, kwestie serializacji w notacji JSON i obsługę wyjątków. Zaprezentowano różne paradygmaty programowania: proceduralnego, w stylu funkcyjnym i zorientowanego obiektowo. Sporo miejsca poświęcono bibliotekom: standardowej bibliotece Pythona i bibliotekom data science do realizacji złożonych zadań przy minimalnym udziale kodowania. Nie zabrakło wprowadzenia do takich zagadnień data science jak sztuczna inteligencja, symulacje, animacje czy przygotowanie danych do analizy.

W książce między innymi:

  • przetwarzanie języka naturalnego
  • IBM
  • stosowanie bibliotek scikit-learn i Keras
  • big data, Hadoop(R), Spark™, NoSQL i usługi chmurowe
  • programowanie dla internetu rzeczy (IoT)
  • biblioteki: standardowa, NumPy, Pandas, SciPy, NLTK, YexyBlob, Tweepy, Matplotlib i inne

Przedmowa 13

Zanim zaczniesz 33

1. Wprowadzenie do komputerów i języka Python 37

  • 1.1. Wstęp 38
  • 1.2. Podstawy technologii obiektowych 39
  • 1.3. Język Python 41
  • 1.4. Biblioteki 44
  • 1.5. IPython i notatniki Jupytera - pierwsze spotkanie 47
  • 1.6. Chmury i internet rzeczy 55
  • 1.7. Big Data - ile to jest "Big"? 58
  • 1.8. Analiza przypadku - mobilna aplikacja Big Data 66
  • 1.9. Wprowadzenie do Data Science: gdy informatyka spotyka się z Data Science 68
  • 1.10. Podsumowanie 71

2. Wprowadzenie do programowania w języku Python 73

  • 2.1. Wstęp 74
  • 2.2. Zmienne i instrukcje przypisania 74
  • 2.3. Obliczenia arytmetyczne 75
  • 2.4. Funkcja "print" i łańcuchy znaków 81
  • 2.5. Łańcuchy z potrójnymi ogranicznikami 83
  • 2.6. Wprowadzanie danych z klawiatury 84
  • 2.7. Podejmowanie decyzji: instrukcja "if" i operatory porównania 86
  • 2.8. Obiekty i typowanie dynamiczne 92
  • 2.9. Wprowadzenie do Data Science - podstawowe statystyki opisowe 93
  • 2.10. Podsumowanie 96

3. Instrukcje przepływu sterowania 97

  • 3.1. Wstęp 98
  • 3.2. Słowa kluczowe języka Python 99
  • 3.3. Instrukcja "if" 99
  • 3.4. Instrukcje "if ... else" i "if ... elif ... else" 101
  • 3.5. Instrukcja "while" 104
  • 3.6. Instrukcja "for" 104
  • 3.7. Rozszerzone przypisania 107
  • 3.8. Iterowanie po ciągach. Formatowane łańcuchy 107
  • 3.9. Nadzorowane iterowanie 109
  • 3.10. Wbudowana funkcja "range" - nieco dokładniej 112
  • 3.11. Obliczenia finansowe - typ "Decimal" 112
  • 3.12. Instrukcje "continue" i "break" 116
  • 3.13. Operatory boolowskie 117
  • 3.14. Wprowadzenie do Data Science: miary tendencji centralnej 120
  • 3.15. Podsumowanie 122

4. Funkcje 123

  • 4.1. Wstęp 124
  • 4.2. Funkcje definiowane w programie 124
  • 4.3. Funkcje z wieloma parametrami 127
  • 4.4. Generowanie liczb pseudolosowych 129
  • 4.5. Analiza przypadku - gra losowa 132
  • 4.6. Standardowa biblioteka Pythona 135
  • 4.7. Funkcje modułu "math" 136
  • 4.8. Wspomagane uzupełnianie kodu 138
  • 4.9. Domyślne wartości parametrów 140
  • 4.10. Argumenty kluczowe 141
  • 4.11. Zmienne listy parametrów 142
  • 4.12. Metody - funkcje należące do obiektów 144
  • 4.13. Zasięg definicji 145
  • 4.14. O importowaniu nieco dokładniej 147
  • 4.15. Przekazywanie argumentów - nieco szczegółów 149
  • 4.16. Rekurencja 152
  • 4.17. Funkcyjny styl programowania 156
  • 4.18. Wprowadzenie do Data Science: miary rozproszenia 158
  • 4.19. Podsumowanie 160

5. Ciągi: listy i krotki 161

  • 5.1. Wstęp 162
  • 5.2. Listy 162
  • 5.3. Krotki 167
  • 5.4. Rozpakowywanie ciągów 170
  • 5.5. Wyodrębnianie podciągów 173
  • 5.6. Instrukcja "del" 176
  • 5.7. Listy jako argumenty wywołań funkcji 177
  • 5.8. Sortowanie list 179
  • 5.9. Multiplikacja ciągu 180
  • 5.10. Przeszukiwanie ciągów 180
  • 5.11. Inne metody listy 183
  • 5.12. Symulowanie stosu za pomocą listy 186
  • 5.13. Odwzorowywanie list 187
  • 5.14. Wyrażenia generatorowe 189
  • 5.15. Natywne filtrowanie, mapowanie i redukcja 189
  • 5.16. Inne funkcje do przetwarzania ciągów 192
  • 5.17. Listy dwuwymiarowe 193
  • 5.18. Wprowadzenie do Data Science: symulacje i ich statyczna wizualizacja 195
  • 5.19. Podsumowanie 205

6. Słowniki i zbiory 207

  • 6.1. Wstęp 208
  • 6.2. Słowniki 208
  • 6.3. Zbiory 218
  • 6.4. Wprowadzenie do Data Science: dynamiczna wizualizacja symulacji 224
  • 6.5. Podsumowanie 232

7. Biblioteka NumPy i tablice ndarray 233

  • 7.1. Wstęp 234
  • 7.2. Tworzenie tablic na podstawie istniejących danych 235
  • 7.3. Atrybuty tablic 235
  • 7.4. Wypełnianie tablicy zadaną wartością 237
  • 7.5. Tworzenie tablicy na podstawie zakresu danych 238
  • 7.6. %timeit - porównanie efektywności tablic i list 240
  • 7.7. Inne "magiczne" polecenia IPythona 241
  • 7.8. Operatory tablicowe 242
  • 7.9. Metody obliczeniowe biblioteki "NumPy" 244
  • 7.10. Funkcje uniwersalne biblioteki "NumPy" 245
  • 7.11. Indeksowanie i wyodrębnianie 247
  • 7.12. Widoki tablic jako płytkie kopie 249
  • 7.13. Głębokie kopiowanie 250
  • 7.14. Restrukturyzacja i transponowanie tablic 251
  • 7.15. Wprowadzenie do Data Science: szeregi i ramki danych biblioteki Pandas 255
  • 7.16. Podsumowanie 269

8. Łańcuchy znaków 271

  • 8.1. Wstęp 272
  • 8.2. Formatowanie łańcuchów 272
  • 8.3. Konkatenowanie i zwielokrotnianie łańcuchów 278
  • 8.4. Usuwanie białych znaków otaczających łańcuch 278
  • 8.5. Zmiana wielkości liter w łańcuchu 279
  • 8.6. Operatory porównywania łańcuchów 279
  • 8.7. Wyszukiwanie podłańcuchów 280
  • 8.8. Zastępowanie podłańcuchów 283
  • 8.9. Dzielenie i składanie łańcuchów 283
  • 8.10. Testowanie specyficznych właściwości łańcucha i jego znaków 286
  • 8.11. Surowe łańcuchy 287
  • 8.12. Podstawy wyrażeń regularnych 288
  • 8.13. Wprowadzenie do Data Science: wyrażenia regularne i preparacja danych w bibliotece Pandas 298
  • 8.14. Podsumowanie 303

9. Pliki i wyjątki 305

  • 9.1. Wstęp 306
  • 9.2. Pliki 307
  • 9.3. Przetwarzanie plików tekstowych 308
  • 9.4. Aktualizowanie plików tekstowych 311
  • 9.5. Serializacja obiektów w formacie JSON 313
  • 9.6. Niebezpieczny moduł "pickle" 315
  • 9.7. Dodatkowe uwagi o plikach 316
  • 9.8. Obsługa wyjątków 318
  • 9.9. Klauzula "finally" 323
  • 9.10. Jawne generowanie wyjątków 325
  • 9.11. Odwijanie stosu i ślad wykonania 326
  • 9.12. Wprowadzenie do Data Science: przetwarzanie plików CSV 328
  • 9.13. Podsumowanie 335

10. Programowanie zorientowane obiektowo 337

  • 10.1. Wstęp 338
  • 10.2. Przykład: klasa "Account" 340
  • 10.3. Kontrolowanie dostępu do atrybutów 344
  • 10.4. Właściwości organizują dostęp do atrybutów. Przykład: klasa "Time" 345
  • 10.5. Symulowanie "prywatności" atrybutów 353
  • 10.6. Analiza przypadku: symulacja tasowania i rozdawania kart 354
  • 10.7. Dziedziczenie: klasy bazowe i podklasy 364
  • 10.8. Hierarchia dziedziczenia a polimorfizm 366
  • 10.9. "Kacze typowanie" a polimorfizm 374
  • 10.10. Przeciążanie operatorów 375
  • 10.11. Klasy wyjątków - hierarchia i definiowanie podklas 379
  • 10.12. Nazwane krotki 380
  • 10.13. Nowość wersji 3.7: klasy danych 381
  • 10.14. Testy jednostkowe przy użyciu łańcuchów dokumentacyjnych i modułu "doctest" 388
  • 10.15. Przestrzenie nazw i widoczność identyfikatorów 391
  • 10.16. Wprowadzenie do Data Science: szeregi czasowe i prosta regresja liniowa 394
  • 10.17. Podsumowanie 402

11. Przetwarzanie języka naturalnego (NLP) 405

  • 11.1. Wstęp 406
  • 11.2. Klasa "TextBlob" 407
  • 11.3. Wizualizacja statystyki słów 422
  • 11.4. Ocena czytelności tekstu - biblioteka "Textatistic" 428
  • 11.5. Rozpoznawanie nazwanych encji - biblioteka "spaCy" 430
  • 11.6. Podobieństwo dokumentów 431
  • 11.7. Inne biblioteki i narzędzia NLP 432
  • 11.8. Zastosowanie NLP w uczeniu maszynowym i głębokim uczeniu 433
  • 11.9. Zbiory danych dla NLP 434
  • 11.10. Podsumowanie 434

12. Eksploracja masowych danych - Twitter 437

  • 12.1. Wstęp 438
  • 12.2. Ogólnie o API Twittera 440
  • 12.3. Pierwszy krok - konto deweloperskie 441
  • 12.4. Drugi krok - aplikacja i poświadczenia 441
  • 12.5. Tweety jako obiekty 443
  • 12.6. Biblioteka "Tweepy" 447
  • 12.7. Uwierzytelnianie za pomocą biblioteki "Tweepy" 447
  • 12.8. Informacja o koncie Twittera 449
  • 12.9. Kursory biblioteki "Tweepy" 451
  • 12.10. Przeszukiwanie niedawnych tweetów 454
  • 12.11. Odkrywanie trendów - Twitter Trends API 458
  • 12.12. Preparacja tweetów przed analizą 462
  • 12.13. Strumieniowanie tweetów - Twitter Streaming API 464
  • 12.14. Tweety i analiza sentymentu - klasa "SentimentListener" 469
  • 12.15. Mapy i geokodowanie 474
  • 12.16. Przechowywanie tweetów 483
  • 12.17. Twitter a szeregi czasowe 483
  • 12.18. Podsumowanie 484

13. Przetwarzanie poznawcze - IBM Watson 485

  • 13.1. Wstęp 486
  • 13.2. Konto IBM Cloud i konsola usług 487
  • 13.3. Usługi platformy Watson 488
  • 13.4. Przydatne narzędzia platformy Watson 492
  • 13.5. Watson Developer Cloud Python SDK 493
  • 13.6. Analiza przypadku: dwujęzyczna aplikacja konwersacyjna 494
  • 13.7. Zasoby powiązane z IBM Watson 509
  • 13.8. Podsumowanie 511

14. Uczenie maszynowe: klasyfikacja, regresja i klasteryzacja 513

  • 14.1. Wstęp 514
  • 14.2. Analiza przypadku: algorytm k najbliższych sąsiadów - klasyfikacja w zbiorze "Digits". Część pierwsza 520
  • 14.3. Analiza przypadku: algorytm k najbliższych sąsiadów - klasyfikacja w zbiorze "Digits". Część druga 531
  • 14.4. Analiza przypadku: prosta regresja liniowa na szeregu czasowym 539
  • 14.5. Analiza przypadku: wielokrotna regresja liniowa na zbiorze "California Housing" 545
  • 14.6. Analiza przypadku: uczenie nienadzorowane. Część pierwsza - redukcja wymiarowości 558
  • 14.7. Analiza przypadku: uczenie nienadzorowane. Część druga - klasteryzacja za pomocą algorytmu k średnich 562
  • 14.8. Podsumowanie 576

15. Głębokie uczenie 579

  • 15.1. Wstęp 580
  • 15.2. Pliki danych wbudowane w bibliotekę "Keras" 583
  • 15.3. Alternatywne środowiska Anacondy 584
  • 15.4. Sieci neuronowe 586
  • 15.5. Tensory 588
  • 15.6. Konwolucyjne sieci neuronowe i widzenie komputerowe: wieloklasyfikacja w zbiorze "MNIST" 590
  • 15.7. TensorBoard - wizualizacja trenowania sieci 610
  • 15.8. ConvNetJS: wizualizacja trenowania w oknie przeglądarki WWW 613
  • 15.9. Rekurencyjne sieci neuronowe i ciągi danych: analiza sentymentu w zbiorze "IMDb" 614
  • 15.10. Dostrajanie modeli głębokiego uczenia 622
  • 15.11. Modele wstępnie wytrenowane 623
  • 15.12. Podsumowanie 624

16. Big Data: Hadoop, Spark, NoSQL i IoT 627

  • 16.1. Wstęp 628
  • 16.2. Relacyjne bazy danych i język SQL 632
  • 16.3. Bazy danych NoSQL i NewSQL dla Big Data - krótki rekonesans 644
  • 16.4. Analiza przypadku: dokumenty JSON w bazie MongoDB 648
  • 16.5. Hadoop 660
  • 16.6. Spark 672
  • 16.7. Strumieniowanie Sparka: zliczanie hashtagów przy użyciu "pyspark-notebook" 683
  • 16.8. Internet rzeczy (IoT) i dashboardy 693
  • 16.9. Podsumowanie 707
  • Tytuł: Python dla programistów. Big Data i AI. Studia przypadków
  • Autor: Paul J. Deitel, Harvey Deitel
  • Tytuł oryginału: Python for Programmers: with Big Data and Artificial Intelligence Case Studies
  • Tłumaczenie: Andrzej Grażyński
  • ISBN: 978-83-283-6395-3, 9788328363953
  • Data wydania: 2020-10-27
  • Format: Ebook
  • Identyfikator pozycji: pytprs
  • Wydawca: Helion