Matematyczny Python. Obliczenia naukowe i analiza danych z użyciem NumPy, SciPy i Matplotlib - ebook
Matematyczny Python. Obliczenia naukowe i analiza danych z użyciem NumPy, SciPy i Matplotlib - ebook
Nie tylko programiści lubią Pythona. Również naukowcy i analitycy danych coraz częściej korzystają z tego języka, zwłaszcza że przed praktykami obliczeniowymi otwierają się niespotykane możliwości. Rozwój sprzętu, oprogramowania i algorytmów pozwala śmiało wkraczać w nowe obszary zastosowania i tworzyć nowe branże. W dalszym ciągu jednak prowadzenie obliczeń pozostaje dziedziną interdyscyplinarną, wymagającą wiedzy matematycznej i myślenia naukowego. Jeśli chce się wykorzystać do obliczeń nowoczesne technologie, takie jak Python wraz z szerokim ekosystemem bibliotek i rozszerzeń, trzeba też posiadać praktyczne umiejętności programowania.
W tej książce wyczerpująco przedstawiono nowoczesne metody rozwiązywania problemów obliczeniowych z tak różnych dziedzin, jak badania naukowe, inżynieria, finanse czy analiza danych za pomocą Pythona i jego bibliotek. Omówiono również wiele technik, w tym obliczenia oparte na tablicach, obliczenia symboliczne, metody wizualizacji danych, numeryczne operacje wejścia-wyjścia, rozwiązywanie równań, optymalizacja, interpolacja czy całkowanie. Pokazano także, jak rozwiązywać problemy obliczeniowe charakterystyczne dla takich dziedzin jak rozwiązywanie równań różniczkowych, analiza danych, modelowanie statystyczne i uczenie maszynowe. Znalazło się tu też wiele studiów przypadków, ukazujących zastosowanie Pythona w analizie danych i statystyce.
W książce między innymi:
- wektory i macierze w NumPy
- wykresy i wizualizacje danych w Matplotlib
- analiza danych z pandas i SciPy
- modelowanie statystyczne i uczenie maszynowe z statsmodels i scikit-learn
- optymalizacja kodu za pomocą Numba i Cython
Python: język, który naukowcy lubią najbardziej!
Spis treści
O autorze 13
O korektorach merytorycznych 15
Wprowadzenie 19
Rozdział 1. Wprowadzenie do obliczeń w Pythonie 23
- Środowiska obliczeniowe w Pythonie 26
- Python 27
- Interpreter 27
- Konsola IPython 28
- Buforowanie wejścia i wyjścia 29
- Autouzupełnianie i introspekcja obiektów 30
- Dokumentacja 30
- Interakcja z powłoką systemową 31
- Rozszerzenia IPythona 31
- Jupyter 36
- Jupyter QtConsole 37
- Jupyter Notebook 37
- Jupyter Lab 39
- Rodzaje komórek 40
- Edycja komórek 41
- Komórki typu Markdown 42
- Możliwości prezentacji danych 42
- nbconvert 46
- Zintegrowane środowisko programistyczne Spyder 48
- Edytor kodu źródłowego 50
- Konsola w Spyderze 50
- Inspektor obiektów 51
- Podsumowanie 51
- Materiały dodatkowe 52
- Bibliografia 52
Rozdział 2. Wektory, macierze i tablice wielowymiarowe 53
- Importowanie modułów 54
- Typ tablicowy NumPy 54
- Typy danych 55
- Reprezentacja danych tablicowych w pamięci 57
- Tworzenie tablic 58
- Tablice utworzone na podstawie list i innych obiektów tablicopodobnych 60
- Tablice wypełnione stałymi wartościami 60
- Tablice wypełnione rosnącymi wartościami 61
- Tablice z wartościami rozmieszczonymi logarytmicznie 62
- Tablice z siatkami współrzędnych 62
- Tworzenie niezainicjalizowanych tablic 63
- Tworzenie tablic o cechach innych tablic 63
- Tworzenie macierzy 63
- Indeksowanie i zakresy 64
- Tablice jednowymiarowe 64
- Tablice wielowymiarowe 66
- Widoki 67
- Indeksowanie logiczne i fancy indexing 68
- Zmiany kształtu i rozmiaru 69
- Wyrażenia zwektoryzowane 74
- Operacje arytmetyczne 74
- Funkcje działające na elementach 77
- Funkcje agregujące 79
- Wyrażenia warunkowe i tablice wartości logicznych 81
- Operacje na zbiorach 84
- Operacje na tablicach 85
- Operacje macierzowe i wektorowe 86
- Podsumowanie 91
- Materiały dodatkowe 92
- Bibliografia 92
Rozdział 3. Obliczenia symboliczne 93
- Importowanie modułów 94
- Symbole 95
- Liczby 97
- Wyrażenia 102
- Manipulowanie wyrażeniami 103
- Upraszczanie wyrażeń 103
- Rozwijanie wyrażeń 105
- Funkcje factor, collect i combine 105
- Funkcje Apart, Together i Cancel 106
- Podstawienia 107
- Ewaluacja wyrażeń 108
- Rachunek różniczkowy 109
- Pochodne 109
- Całki 111
- Szeregi 112
- Granice 114
- Sumy i iloczyny uogólnione 115
- Równania 115
- Algebra liniowa 117
- Podsumowanie 120
- Materiały dodatkowe 121
- Bibliografia 121
Rozdział 4. Wykresy i wizualizacje 123
- Importowanie modułów 124
- Pierwsze kroki 125
- Tryb interaktywny i nieinteraktywny 128
- Klasa Figure 130
- Klasa Axes 131
- Typy wykresów 132
- Parametry linii 133
- Legendy 136
- Formatowanie tekstu i adnotacje 138
- Właściwości osi 140
- Złożone układy obiektów Axes 149
- Wstawki 149
- plt.subplots 150
- subplot2grid 152
- GridSpec 152
- Wykresy typu colormap 153
- Wykresy 3D 156
- Podsumowanie 158
- Materiały dodatkowe 158
- Bibliografia 158
Rozdział 5. Rozwiązywanie równań 159
- Importowanie modułów 160
- Układy równań liniowych 160
- Układy z macierzą kwadratową 161
- Układy równań z macierzą prostokątną 166
- Problem wartości własnych 169
- Równania nieliniowe 171
- Równania jednowymiarowe 171
- Układy równań nieliniowych 177
- Podsumowanie 181
- Materiały dodatkowe 181
- Bibliografia 181
Rozdział 6. Optymalizacja 183
- Importowanie modułów 184
- Klasyfikacja problemów optymalizacyjnych 184
- Optymalizacja jednowymiarowa 187
- Optymalizacja wielowymiarowa bez ograniczeń 190
- Nieliniowy problem najmniejszych kwadratów 196
- Optymalizacja z ograniczeniami 198
- Programowanie liniowe 202
- Podsumowanie 204
- Materiały dodatkowe 205
- Bibliografia 205
Rozdział 7. Interpolacja 207
- Importowanie modułów 208
- Interpolacja 208
- Wielomiany 209
- Interpolacja wielomianowa 212
- Interpolacja funkcjami sklejanymi 216
- Interpolacja funkcji wielu zmiennych 218
- Podsumowanie 224
- Materiały dodatkowe 224
- Bibliografia 224
Rozdział 8. Całkowanie 225
- Importowanie modułów 226
- Metody całkowania numerycznego 226
- Całkowanie numeryczne z użyciem SciPy 230
- Całki z funkcji w postaci tablicowej 233
- Całki wielokrotne 235
- Całkowanie symboliczne i całkowanie z dowolną precyzją 239
- Całki krzywoliniowe 241
- Transformaty całkowe 241
- Podsumowanie 244
- Materiały dodatkowe 245
- Bibliografia 245
Rozdział 9. Równanie różniczkowe zwyczajne 247
- Importowanie modułów 248
- Równania różniczkowe zwyczajne 248
- Rozwiązania symboliczne 250
- Pola kierunków 255
- Rozwiązywanie równań z użyciem transformaty Laplace'a 258
- Numeryczne metody rozwiązywania równań różniczkowych 261
- Numeryczne rozwiązywanie równań różniczkowych z użyciem SymPy 264
- Podsumowanie 275
- Materiały dodatkowe 276
- Bibliografia 276
Rozdział 10. Macierze rzadkie i grafy 277
- Importowanie modułów 278
- Macierze rzadkie w SciPy 278
- Funkcje do tworzenia macierzy rzadkich 283
- Algebra liniowa macierzy rzadkich 285
- Układy równań liniowych 285
- Grafy i sieci 291
- Podsumowanie 297
- Materiały dodatkowe 297
- Bibliografia 297
Rozdział 11. Równania różniczkowe cząstkowe 299
- Importowanie modułów 300
- Równania różniczkowe cząstkowe 301
- Metoda różnic skończonych 302
- Metoda elementów skończonych 307
- Przegląd frameworków MES 310
- Rozwiązywanie równań różniczkowych cząstkowych z użyciem FEniCS-a 311
- Podsumowanie 330
- Materiały dodatkowe 330
- Bibliografia 331
Rozdział 12. Przetwarzanie i analiza danych 333
- Importowanie modułów 334
- Wprowadzenie do Pandas 334
- Typ Series 335
- Typ DataFrame 337
- Szeregi czasowe 344
- Biblioteka Seaborn 353
- Podsumowanie 358
- Materiały dodatkowe 358
- Bibliografia 359
Rozdział 13. Statystyka 361
- Importowanie modułów 362
- Statystyka i prawdopodobieństwo 362
- Liczby losowe 364
- Zmienne losowe i rozkłady 367
- Testowanie hipotez 374
- Metody nieparametryczne 378
- Podsumowanie 381
- Materiały dodatkowe 381
- Bibliografia 381
Rozdział 14. Modelowanie statystyczne 383
- Importowanie modułów 384
- Wprowadzenie do modelowania statystycznego 385
- Definiowanie modeli statystycznych w Patsy 386
- Regresja liniowa 393
- Przykładowe zbiory danych 400
- Regresja dyskretna 401
- Regresja logistyczna 402
- Model Poissona 406
- Szeregi czasowe 409
- Podsumowanie 413
- Materiały dodatkowe 413
- Bibliografia 413
Rozdział 15. Uczenie maszynowe 415
- Importowanie modułów 416
- Krótki przegląd uczenia maszynowego 417
- Regresja 419
- Klasyfikacja 428
- Klasteryzacja 431
- Podsumowanie 436
- Materiały dodatkowe 436
- Bibliografia 436
Rozdział 16. Statystyka bayesowska 437
- Importowanie modułów 438
- Wprowadzenie do statystyki bayesowskiej 439
- Definiowanie modelu 441
- Próbkowanie rozkładów a posteriori 445
- Regresja liniowa 448
- Podsumowanie 458
- Materiały dodatkowe 459
- Bibliografia 459
Rozdział 17. Przetwarzanie sygnałów 461
- Importowanie modułów 462
- Analiza spektralna 462
- Transformata Fouriera 462
- Okna czasowe 467
- Spektrogramy 471
- Filtrowanie sygnałów 474
- Filtry konwolucyjne 474
- Filtry o skończonej i nieskończonej odpowiedzi impulsowej 476
- Podsumowanie 481
- Materiały dodatkowe 481
- Bibliografia 481
Rozdział 18. Wprowadzanie i wyprowadzanie danych 483
- Importowanie modułów 484
- Format CSV 485
- HDF5 489
- h5py 490
- PyTables 500
- HDFStore z Pandas 503
- JSON 505
- Serializacja 509
- Podsumowanie 511
- Materiały dodatkowe 511
- Bibliografia 512
Rozdział 19. Optymalizacja kodu 513
- Importowanie modułów 515
- Numba 516
- Cython 522
- Podsumowanie 531
- Materiały dodatkowe 532
- Bibliografia 532
Dodatek. Instalacja i konfiguracja środowiska 533
- Miniconda i conda 534
- Pełne środowisko 540
- Podsumowanie 543
- Materiały dodatkowe 543
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-7151-4 |
Rozmiar pliku: | 26 MB |