ЧАСТЬ I. ФУНДАМЕНТАЛЬНЫЕ ПОДХОДЫ....25
1 Острая нехватка производительности при обработке данных....2
2 Извлечение максимума возможного из встроенных средств Python....46
3 Конкурентность, параллелизм и асинхронная обработка....77
4 Высокопроизводительный NumPy....117
ЧАСТЬ II. АППАРАТНОЕ ОБЕСПЕЧЕНИЕ....153
5 Реализация критически важного кода с помощью Cython....155
6 Иерархия памяти, хранение данных и работа с сетью....192
ЧАСТЬ III. ПРИЛОЖЕНИЯ И БИБЛИОТЕКИ ДЛЯ СОВРЕМЕННОЙ ОБРАБОТКИ ДАННЫХ....217
7 Высокопроизводительный pandas и Apache Arrow....219
8 Хранение больших данных....256
ЧАСТЬ IV. ПРОДВИНУТЫЕ ВОЗМОЖНОСТИ....289
9 Анализ данных с использованием графического процессора....291
10 Анализ больших данных с использованием библиотеки Dask....321
Приложение А. Настройка окружения....353
Приложение Б. Использование Numba для создания эффективного низкоуровневого кода....357
Предметный указатель....365
Быстрый код на чистом Python, оптимизированные библиотеки и аппаратное обеспечение, позволяющее использовать все преимущества параллельной обработки данных, – это цена входа в мир машинного обучения и анализа больших данных. Книга, которую вы держите в руках, предлагает уникальные техники ускорения с акцентом на большие данные и станет вашим надежным проводником в мир оптимизации решений на базе Python. Вы узнаете, как оптимизировать работу со встроенными структурами данных и ускорить решения за счет конкурентного выполнения, а также научитесь сокращать объем занимаемой данными памяти без ущерба для их точности.
Ознакомившись с тщательно проработанными примерами, вы узнаете, как добиться большей производительности популярных библиотек, таких как NumPy и pandas, и как эффективно обрабатывать и хранить данные. В книге используется целостный подход к повышению эффективности решений, так что вы научитесь оптимизировать и масштабировать целые системы – начиная от кода и заканчивая архитектурой.
Книга предназначена для разработчиков Python, знакомых с основами языка и принципами конкурентных вычислений.