Сверхбыстрый Python [Тиаго Антао] (pdf) читать постранично

-  Сверхбыстрый Python  11.16 Мб, 372с. скачать: (pdf) - (pdf+fbd)  читать: (полностью) - (постранично) - Тиаго Антао

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

Тиаго Антао

Сверхбыстрый Python
Эффективные техники для работы
с большими наборами данных

Fast Python
HIGHT PERFORMANCE TECHNIQUES
FOR LARGE DATASETS

TIAGO RODRIGES ANTÃO

Сверхбыстрый Python
ЭФФЕКТИВНЫЕ ТЕХНИКИ ДЛЯ РАБОТЫ
С БОЛЬШИМИ НАБОРАМИ ДАННЫХ

ТИАГО АНТАО

Москва, 2023

УДК 004.438Python:004.6
ББК 32.973.22
А72

А72

Тиаго Антао
Сверхбыстрый Python. Эффективные техники для работы с большими наборами данных / пер. с англ. А. Ю. Гинько. – М.: ДМК Пресс, 2023. – 370 с.: ил.
ISBN 978-5-93700-226-6
Данная книга предлагает уникальные техники ускорения выполнения
кода на Python с акцентом на большие данные. Вы узнаете, как оптимизировать работу со встроенными структурами данных за счет конкурентного выполнения, а также научитесь сокращать объем занимаемой
данными памяти без ущерба для их точности. Ознакомившись с тщательно проработанными примерами, вы узнаете, как добиться большей
производительности популярных библиотек, таких как NumPy и pandas,
и как эффективно обрабатывать и хранить данные. В книге используется целостный подход к повышению эффективности решений, так что
вы научитесь оптимизировать и масштабировать целые системы – начиная от кода и заканчивая архитектурой.
Издание предназначено для разработчиков Python, знакомых с основами языка и принципами конкурентных вычислений.
УДК 004.438Python:004.6
ББК 32.973.22
DMK Press 2023.Authorized translation of the English edition©2023 Manning
Publications.This translation is published and sold by permission of Manning
Publications,the owner of all rights to publish and sell the same.
Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без
письменного разрешения владельцев авторских прав.

ISBN (анг.) 978-1-61729-793-9
ISBN (рус.) 978-5-93700-226-6

© 2023 by Manning Publications Co.
© Оформление, издание, перевод,
ДМК Пресс, 2023

Оглавление
Предисловие от издательства......................................................................... 11
Предисловие...................................................................................................... 13
Благодарности................................................................................................... 15
О книге............................................................................................................... 16
Об авторе........................................................................................................... 22
О переводчике................................................................................................... 23
Об изображении на обложке.......................................................................... 24

ЧАСТЬ I. ФУНДАМЕНТАЛЬНЫЕ ПОДХОДЫ................. 25
нехватка производительности
1 Острая
при обработке данных............................................................27
1.1. Насколько велик всемирный потоп данных?.............................. 29
1.2. Современные вычислительные архитектуры
и высокопроизводительные вычисления........................................... 33
1.2.1. Изменения в архитектуре компьютеров........................... 33
1.2.2. Изменения в архитектуре сети............................................ 36
1.2.3. Облако..................................................................................... 38
1.3. Работа с ограничениями языка Python......................................... 38
1.3.1.Глобальная блокировка интерпретатора............................ 40
1.4. Возможные решения....................................................................... 41
Заключение.............................................................................................. 44

максимума возможного из встроенных
2 Извлечение
средств Python.................................................................. 46
2.1. Профилирование приложений с операциями
ввода-вывода и вычислениями....................................................... 48
2.1.1. Загрузка данных и поиск минимальной температуры........ 48
2.1.2. Встроенный в Python модуль профилирования............... 50
2.1.3. Использование локального кеша для снижения
сетевой нагрузки.............................................................................. 51
2.2. Профилирование кода для обнаружения проблем
с производительностью......................................................................... 53
2.2.1. Визуализация профилировочной информации............... 54
2.2.2. Профилирование с детализацией до строк...................... 55
2.2.3. Профилирование кода: выводы.......................................... 57
2.3. Оптимизация работы базовых структур данных Python:
списки, множества и словари................................................................ 58
2.3.1. Быстродействие поиска в списке........................................ 59
2.3.2. Поиск с использованием множеств.................................... 60
2.3.3. Вычислительная сложность списков, множеств
и словарей в Python......................................................................... 61

6

Оглавление
2.4. В поисках избыточного выделения памяти................................. 63
2.4.1. По минному полю выделения памяти в Python................ 64
2.4.2. Выделение памяти для альтернативных представлений.... 67
2.4.3. Использование массивов в качестве компактной
альтернативы спискам.................................................................... 69
2.4.4. Систематизирование новых знаний:
оценка объема памяти, занимаемой объектом........................... 71
2.4.5. Оценка занимаемой объектами памяти в Python:
выводы............................................................................................... 72
2.5. Использование ленивых вычислений и генераторов
для работы с большими данными......................................................... 73
2.5.1. Использование генераторов вместо обычных
функций.............................................................................................