Facebook - konwersja
  • promocja

Python. Programuj szybko i wydajnie - ebook

Wydawnictwo:
Tłumacz:
Data wydania:
8 maja 2015
Format ebooka:
EPUB
Format EPUB
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najpopularniejszych formatów e-booków na świecie. Niezwykle wygodny i przyjazny czytelnikom - w przeciwieństwie do formatu PDF umożliwia skalowanie czcionki, dzięki czemu możliwe jest dopasowanie jej wielkości do kroju i rozmiarów ekranu. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
, PDF
Format PDF
czytaj
na laptopie
czytaj
na tablecie
Format e-booków, który możesz odczytywać na tablecie oraz laptopie. Pliki PDF są odczytywane również przez czytniki i smartfony, jednakze względu na komfort czytania i brak możliwości skalowania czcionki, czytanie plików PDF na tych urządzeniach może być męczące dla oczu. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
, MOBI
Format MOBI
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najczęściej wybieranych formatów wśród czytelników e-booków. Możesz go odczytać na czytniku Kindle oraz na smartfonach i tabletach po zainstalowaniu specjalnej aplikacji. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
(3w1)
Multiformat
E-booki sprzedawane w księgarni Virtualo.pl dostępne są w opcji multiformatu - kupujesz treść, nie format. Po dodaniu e-booka do koszyka i dokonaniu płatności, e-book pojawi się na Twoim koncie w Mojej Bibliotece we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu przy okładce. Uwaga: audiobooki nie są objęte opcją multiformatu.
czytaj
na laptopie
Pliki PDF zabezpieczone watermarkiem możesz odczytać na dowolnym laptopie po zainstalowaniu czytnika dokumentów PDF. Najpowszechniejszym programem, który umożliwi odczytanie pliku PDF na laptopie, jest Adobe Reader. W zależności od potrzeb, możesz zainstalować również inny program - e-booki PDF pod względem sposobu odczytywania nie różnią niczym od powszechnie stosowanych dokumentów PDF, które odczytujemy każdego dnia.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na tablecie
Aby odczytywać e-booki na swoim tablecie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. Bluefire dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na czytniku
Czytanie na e-czytniku z ekranem e-ink jest bardzo wygodne i nie męczy wzroku. Pliki przystosowane do odczytywania na czytnikach to przede wszystkim EPUB (ten format możesz odczytać m.in. na czytnikach PocketBook) i MOBI (ten fromat możesz odczytać m.in. na czytnikach Kindle).
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na smartfonie
Aby odczytywać e-booki na swoim smartfonie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. iBooks dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.

Python. Programuj szybko i wydajnie - ebook

Wydajne aplikacje w języku Python!

Python to skryptowy język programowania istniejący na rynku od wielu lat — jego pierwsza wersja pojawiła się w 1991 roku. Przejrzystość kodu źródłowego była jednym z głównych celów Guida van Rossuma, twórcy tego języka. Dziś Python cieszy się dużą popularnością, co z jednej strony świadczy o jego przydatności, a z drugiej gwarantuje użytkownikom szerokie wsparcie społeczności programistów języka. Python jest elastyczny, dopuszcza różne style programowania, a dzięki temu znajduje zastosowanie w wielu miejscach świata IT.

Jeżeli chcesz w pełni wykorzystać możliwości Pythona i tworzyć wydajne rozwiązania, to koniecznie zaopatrz się w tę książkę! Dzięki niej dowiesz się, jak wykorzystać profilowanie do lokalizowania „wąskich gardeł”, oraz poznasz efektywne techniki wyszukiwania danych na listach, w słownikach i zbiorach. Ponadto zdobędziesz wiedzę na temat obliczeń macierzowych i wektorowych oraz zobaczysz, jak kompilacja do postaci kodu C wpływa na wydajność Twojego rozwiązania. Osobne rozdziały zostały poświęcone współbieżności oraz modułowi multiprocessing. Opanowanie tych zagadnień pozwoli Ci ogromnie przyspieszyć działanie Twojej aplikacji. Na sam koniec nauczysz się tworzyć klastry i kolejki zadań oraz optymalizować zużycie pamięci RAM. Rozdział dwunasty to gratka dla wszystkich — zawiera najlepsze porady specjalistów z branży! Książka ta jest obowiązkową lekturą dla wszystkich programistów chcących tworzyć wydajne rozwiązania w języku Python.
 
  • Poznaj lepiej narzędzia numpy i Cython, a także narzędzia profilujące
  • Dowiedz się, jak w języku Python dokonywana jest abstrakcja bazowej architektury komputera.
  • Użyj profilowania do znajdowania „wąskich gardeł” związanych z wykorzystaniem czasu procesora i pamięci.
  • Utwórz wydajne programy, wybierając odpowiednie struktury danych.
  • Przyspiesz obliczenia oparte na macierzach i wektorach.
  • Zastosuj narzędzia do kompilacji kodu Python do postaci kodu maszynowego.
  • Zarządzaj jednocześnie wieloma operacjami obliczeniowymi i operacjami wejścia-wyjścia.
  • Przekształć kod przetwarzania współbieżnego w celu uruchomienia go w klastrze lokalnym lub zdalnym.
  • Rozwiąż duże problemy, używając mniej pamięci RAM.

Wyciśnij z Pythona siódme poty!

Spis treści

Przedmowa (9)

1. Wydajny kod Python (15)

  • Podstawowy system komputerowy (15)
    • Jednostki obliczeniowe (16)
    • Jednostki pamięci (19)
    • Warstwy komunikacji (21)
  • Łączenie ze sobą podstawowych elementów (22)
    • Porównanie wyidealizowanego przetwarzania z maszyną wirtualną języka Python (23)
  • Dlaczego warto używać języka Python? (26)

2. Użycie profilowania do znajdowania wąskich gardeł (29)

  • Efektywne profilowanie (30)
  • Wprowadzenie do zbioru Julii (31)
  • Obliczanie pełnego zbioru Julii (34)
  • Proste metody pomiaru czasu - instrukcja print i dekorator (37)
  • Prosty pomiar czasu za pomocą polecenia time systemu Unix (40)
  • Użycie modułu cProfile (41)
  • Użycie narzędzia runsnake do wizualizacji danych wyjściowych modułu cProfile (46)
  • Użycie narzędzia line_profiler do pomiarów dotyczących kolejnych wierszy kodu (46)
  • Użycie narzędzia memory_profiler do diagnozowania wykorzystania pamięci (51)
  • Inspekcja obiektów w stercie za pomocą narzędzia heapy (56)
  • Użycie narzędzia dowser do generowania aktywnego wykresu dla zmiennych z utworzonymi instancjami (58)
  • Użycie modułu dis do sprawdzania kodu bajtowego narzędzia CPython (60)
    • Różne metody, różna złożoność (62)
  • Testowanie jednostkowe podczas optymalizacji w celu zachowania poprawności (64)
    • Dekorator @profile bez operacji (64)
  • Strategie udanego profilowania kodu (66)
  • Podsumowanie (67)

3. Listy i krotki (69)

  • Bardziej efektywne wyszukiwanie (71)
  • Porównanie list i krotek (73)
  • Listy jako tablice dynamiczne (74)
  • Krotki w roli tablic statycznych (77)
  • Podsumowanie (78)

4. Słowniki i zbiory (79)

  • Jak działają słowniki i zbiory? (82)
    • Wstawianie i pobieranie (82)
    • Usuwanie (85)
    • Zmiana wielkości (85)
    • Funkcje mieszania i entropia (86)
  • Słowniki i przestrzenie nazw (89)
  • Podsumowanie (92)

5. Iteratory i generatory (93)

  • Iteratory dla szeregów nieskończonych (96)
  • Wartościowanie leniwe generatora (97)
  • Podsumowanie (101)

6. Obliczenia macierzowe i wektorowe (103)

  • Wprowadzenie do problemu (104)
  • Czy listy języka Python są wystarczająco dobre? (107)
    • Problemy z przesadną alokacją (109)
  • Fragmentacja pamięci (111)
    • Narzędzie perf (113)
    • Podejmowanie decyzji z wykorzystaniem danych wyjściowych narzędzia perf (115)
    • Wprowadzenie do narzędzia numpy (116)
  • Zastosowanie narzędzia numpy w przypadku problemu dotyczącego dyfuzji (119)
    • Przydziały pamięci i operacje wewnętrzne (121)
    • Optymalizacje selektywne: znajdowanie tego, co wymaga poprawienia (124)
  • Moduł numexpr: przyspieszanie i upraszczanie operacji wewnętrznych (127)
  • Przestroga: weryfikowanie "optymalizacji" (biblioteka scipy) (129)
  • Podsumowanie (131)

7. Kompilowanie do postaci kodu C (133)

  • Jakie wzrosty szybkości są możliwe? (134)
  • Porównanie kompilatorów JIT i AOT (136)
  • Dlaczego informacje o typie ułatwiają przyspieszenie działania kodu? (136)
  • Użycie kompilatora kodu C (137)
  • Analiza przykładu zbioru Julii (138)
  • Cython (139)
    • Kompilowanie czystego kodu Python za pomocą narzędzia Cython (139)
    • Użycie adnotacji kompilatora Cython do analizowania bloku kodu (141)
    • Dodawanie adnotacji typu (143)
  • Shed Skin (147)
    • Tworzenie modułu rozszerzenia (148)
    • Koszt związany z kopiami pamięci (150)
  • Cython i numpy (151)
    • Przetwarzanie równoległe rozwiązania na jednym komputerze z wykorzystaniem interfejsu OpenMP (152)
  • Numba (154)
  • Pythran (155)
  • PyPy (157)
    • Różnice związane z czyszczeniem pamięci (158)
    • Uruchamianie interpretera PyPy i instalowanie modułów (159)
  • Kiedy stosować poszczególne technologie? (160)
    • Inne przyszłe projekty (162)
    • Uwaga dotycząca układów GPU (162)
    • Oczekiwania dotyczące przyszłego projektu kompilatora (163)
  • Interfejsy funkcji zewnętrznych (163)
    • ctypes (164)
    • cffi (166)
    • f2py (169)
    • Moduł narzędzia CPython (171)
  • Podsumowanie (174)

8. Współbieżność (175)

  • Wprowadzenie do programowania asynchronicznego (176)
  • Przeszukiwacz szeregowy (179)
  • gevent (181)
  • tornado (185)
  • AsyncIO (188)
  • Przykład z bazą danych (190)
  • Podsumowanie (193)

9. Moduł multiprocessing (195)

  • Moduł multiprocessing (198)
  • Przybliżenie liczby pi przy użyciu metody Monte Carlo (200)
  • Przybliżanie liczby pi za pomocą procesów i wątków (201)
    • Zastosowanie obiektów języka Python (201)
    • Liczby losowe w systemach przetwarzania równoległego (208)
    • Zastosowanie narzędzia numpy (209)
  • Znajdowanie liczb pierwszych (211)
    • Kolejki zadań roboczych (217)
  • Weryfikowanie liczb pierwszych za pomocą komunikacji międzyprocesowej (221)
    • Rozwiązanie z przetwarzaniem szeregowym (225)
    • Rozwiązanie z prostym obiektem Pool (225)
    • Rozwiązanie z bardzo prostym obiektem Pool dla mniejszych liczb (227)
    • Użycie obiektu Manager.Value jako flagi (228)
    • Użycie systemu Redis jako flagi (229)
    • Użycie obiektu RawValue jako flagi (232)
    • Użycie modułu mmap jako flagi (232)
    • Użycie modułu mmap do odtworzenia flagi (233)
  • Współużytkowanie danych narzędzia numpy za pomocą modułu multiprocessing (236)
  • Synchronizowanie dostępu do zmiennych i plików (242)
    • Blokowanie plików (242)
    • Blokowanie obiektu Value (245)
  • Podsumowanie (248)

10. Klastry i kolejki zadań (249)

  • Zalety klastrowania (250)
  • Wady klastrowania (251)
    • Strata o wartości 462 milionów dolarów na giełdzie Wall Street z powodu kiepskiej strategii aktualizacji klastra (252)
    • 24-godzinny przestój usługi Skype w skali globalnej (253)
  • Typowe projekty klastrowe (254)
  • Metoda rozpoczęcia tworzenia rozwiązania klastrowego (254)
  • Sposoby na uniknięcie kłopotów podczas korzystania z klastrów (255)
  • Trzy rozwiązania klastrowe (257)
    • Użycie modułu Parallel Python dla prostych klastrów lokalnych (257)
    • Użycie modułu IPython Parallel do obsługi badań (259)
  • Użycie systemu NSQ dla niezawodnych klastrów produkcyjnych (262)
    • Kolejki (263)
    • Publikator/subskrybent (264)
    • Rozproszone obliczenia liczb pierwszych (266)
  • Inne warte uwagi narzędzia klastrowania (268)
  • Podsumowanie (269)

11. Mniejsze wykorzystanie pamięci RAM (271)

  • Obiekty typów podstawowych są kosztowne (272)
    • Moduł array zużywa mniej pamięci do przechowywania wielu obiektów typu podstawowego (273)
  • Analiza wykorzystania pamięci RAM w kolekcji (276)
  • Bajty i obiekty Unicode (277)
  • Efektywne przechowywanie zbiorów tekstowych w pamięci RAM (279)
    • Zastosowanie metod dla 8 milionów tokenów (280)
  • Wskazówki dotyczące mniejszego wykorzystania pamięci RAM (288)
  • Probabilistyczne struktury danych (289)
    • Obliczenia o bardzo dużym stopniu przybliżenia z wykorzystaniem jednobajtowego licznika Morrisa (290)
    • Wartości k-minimum (291)
    • Filtry Blooma (295)
    • Licznik LogLog (299)
    • Praktyczny przykład (303)

12. Rady specjalistów z branży (307)

  • Narzędzie Social Media Analytics (SoMA) firmy Adaptive Lab (307)
    • Język Python w firmie Adaptive Lab (308)
    • Projekt narzędzia SoMA (308)
    • Zastosowana metodologia projektowa (309)
    • Serwisowanie systemu SoMA (309)
    • Rada dla inżynierów z branży (310)
  • Technika głębokiego uczenia prezentowana przez firmę RadimRehurek.com (310)
    • Strzał w dziesiątkę (311)
    • Rady dotyczące optymalizacji (313)
    • Podsumowanie (315)
  • Uczenie maszynowe o dużej skali gotowe do zastosowań produkcyjnych w firmie Lyst.com (315)
    • Rola języka Python w witrynie Lyst (316)
    • Projekt klastra (316)
    • Ewolucja kodu w szybko rozwijającej się nowej firmie (316)
    • Budowanie mechanizmu rekomendacji (316)
    • Raportowanie i monitorowanie (317)
    • Rada (317)
  • Analiza serwisu społecznościowego o dużej skali w firmie Smesh (318)
    • Rola języka Python w firmie Smesh (318)
    • Platforma (318)
    • Dopasowywanie łańcuchów w czasie rzeczywistym z dużą wydajnością (319)
    • Raportowanie, monitorowanie, debugowanie i wdrażanie (320)
  • Interpreter PyPy zapewniający powodzenie systemów przetwarzania danych i systemów internetowych (322)
    • Wymagania wstępne (322)
    • Baza danych (323)
    • Aplikacja internetowa (323)
    • Mechanizm OCR i tłumaczenie (324)
    • Dystrybucja zadań i procesy robocze (324)
    • Podsumowanie (325)
  • Kolejki zadań w serwisie internetowym Lanyrd.com (325)
    • Rola języka Python w serwisie Lanyrd (325)
    • Zapewnianie odpowiedniej wydajności kolejki zadań (326)
    • Raportowanie, monitorowanie, debugowanie i wdrażanie (326)
    • Rada dla programistów z branży (326)

Skorowidz (329)

Kategoria: Programowanie
Zabezpieczenie: Watermark
Watermark
Watermarkowanie polega na znakowaniu plików wewnątrz treści, dzięki czemu możliwe jest rozpoznanie unikatowej licencji transakcyjnej Użytkownika. E-książki zabezpieczone watermarkiem można odczytywać na wszystkich urządzeniach odtwarzających wybrany format (czytniki, tablety, smartfony). Nie ma również ograniczeń liczby licencji oraz istnieje możliwość swobodnego przenoszenia plików między urządzeniami. Pliki z watermarkiem są kompatybilne z popularnymi programami do odczytywania ebooków, jak np. Calibre oraz aplikacjami na urządzenia mobilne na takie platformy jak iOS oraz Android.
ISBN: 978-83-283-0469-7
Rozmiar pliku: 22 MB

BESTSELLERY

Kategorie: