- •Об авторе
- •О научных редакторах
- •Благодарности
- •От издательства
- •Введение
- •Для кого эта книга?
- •Почему Python?
- •План книги
- •Версия Python, платформа и IDE
- •Установка Python
- •Запуск Python
- •Использование виртуальной среды
- •Вперед!
- •Глава 1. Спасение моряков с помощью теоремы Байеса
- •Теорема Байеса
- •Проект #1. Поиск и спасение
- •Стратегия
- •Установка библиотек Python
- •Код для теоремы Байеса
- •Время сыграть
- •Итоги
- •Дополнительная литература
- •Усложняем проект. Более грамотный поиск
- •Усложняем проект. Поиск лучшей стратегии с помощью MCS
- •Усложняем проект. Вычисление вероятности обнаружения
- •Глава 2. Установление авторства с помощью стилометрии
- •Проект #2: «Собака Баскервилей», «Война миров» и «Затерянный мир»
- •Стратегия
- •Установка NLTK
- •Корпусы текстов
- •Код стилометрии
- •Итоги
- •Дополнительная литература
- •Практический проект: охота на собаку Баскервилей с помощью распределения
- •Практический проект: тепловая карта пунктуации
- •Усложняем проект: фиксирование частотности
- •Глава 3. Суммаризация текста с помощью обработки естественного языка
- •Стратегия
- •Веб-скрапинг
- •Код для «У меня есть мечта»
- •Установка gensim
- •Код для суммаризации речи «Заправляйте свою кровать»
- •Проект #5. Суммаризация речи с помощью облака слов
- •Модули Word Cloud и PIL
- •Код для создания облака слов
- •Итоги
- •Дополнительная литература
- •Усложняем проект: ночные игры
- •Усложняем проект: суммаризация суммаризаций
- •Глава 4. Отправка суперсекретных сообщений с помощью книжного шифра
- •Одноразовый блокнот
- •Шифр «Ребекка»
- •Проект #6. Цифровой ключ к «Ребекке»
- •Стратегия
- •Код для шифрования
- •Отправка сообщений
- •Итоги
- •Дополнительная литература
- •Глава 5. Поиск Плутона
- •Проект #7. Воссоздание блинк-компаратора
- •Стратегия
- •Данные
- •Код блинк-компаратора
- •Использование блинк-компаратора
- •Проект #8. Обнаружение астрономических транзиентов путем дифференцирования изображений
- •Стратегия
- •Код для детектора транзиентов
- •Использование детектора транзиентов
- •Итоги
- •Дополнительная литература
- •Практический проект: представление орбитальной траектории
- •Практический проект: найди отличия
- •Усложняем проект: сосчитаем звезды
- •Глава 6. Победа в лунной гонке с помощью «Аполлона-8»
- •Цель миссии «Аполлон-8»
- •Траектория свободного возврата
- •Задача трех тел
- •Проект #9. На Луну с «Аполлоном-8»!
- •Использование модуля turtle
- •Стратегия
- •Код программы для расчета свободного возврата «Аполлона-8»
- •Выполнение симуляции
- •Итоги
- •Дополнительная литература
- •Практический проект: симуляция шаблона поисков
- •Практический проект: запусти меня!
- •Практический проект: останови меня!
- •Усложняем проект: симуляция в истинном масштабе
- •Усложняем проект: реальный «Аполлон-8»
- •Глава 7. Выбор мест высадки на Марсе
- •Посадка на Марс
- •Карта MOLA
- •Проект #10. Выбор посадочных мест на Марсе
- •Стратегия
- •Код для выбора мест посадки
- •Результаты
- •Итоги
- •Дополнительная литература
- •Практический проект: убедимся, что рисунки становятся частью изображения
- •Практический проект: визуализация профиля высот
- •Практический проект: отображение в 3D
- •Практический проект: совмещение карт
- •Усложняем проект: три в одном
- •Усложняем проект: перенос прямоугольников
- •Глава 8. Обнаружение далеких экзопланет
- •Транзитная фотометрия
- •Проект #11. Симуляция транзита экзопланеты
- •Стратегия
- •Код для транзита
- •Эксперименты с транзитной фотометрией
- •Проект #12. Получение изображений экзопланет
- •Стратегия
- •Код для пикселизатора
- •Итоги
- •Дополнительная литература
- •Практический проект: обнаружение инопланетных мегаструктур
- •Практический проект: обнаружение транзита астероидов
- •Практический проект: добавление эффекта потемнения к краю
- •Практический проект: обнаружение пятен на звездах
- •Практический проект: обнаружение инопланетной армады
- •Практический проект: обнаружение планеты с луной
- •Практический проект: измерение продолжительности экзопланетного дня
- •Усложняем проект: генерация динамической кривой блеска
- •Глава 9. Как различить своих и чужих
- •Обнаружение лиц на фотографиях
- •Проект #13. Программирование робота-часового
- •Стратегия
- •Результаты
- •Обнаружение лиц в видеопотоке
- •Итоги
- •Дополнительная литература
- •Практический проект: размытие лиц
- •Усложняем проект: обнаружение кошачьих мордочек
- •Глава 10. Ограничение доступа по принципу распознавания лиц
- •Распознавание лиц с помощью LBPH
- •Схема распознавания лиц
- •Извлечение гистограмм локальных бинарных шаблонов
- •Проект #14. Ограничение доступа к инопланетному артефакту
- •Стратегия
- •Поддержка модулей и файлов
- •Код для захвата видео
- •Код для обучения алгоритма распознавания лиц
- •Код для прогнозирования лиц
- •Результаты
- •Итоги
- •Дополнительная литература
- •Усложняем проект: добавление пароля и видеозахвата
- •Усложняем проект: похожие лица и близнецы
- •Усложняем проект: машина времени
- •Глава 11. Создание интерактивной карты побега от зомби
- •Проект #15. Визуализация плотности населения с помощью хороплетной карты
- •Стратегия
- •Библиотека анализа данных
- •Библиотеки bokeh и holoviews
- •Установка pandas, bokeh и holoviews
- •Работа с данными по уровню безработицы и плотности населения в округах и штатах
- •Разбираем код holoviews
- •Код для отрисовки хороплетной карты
- •Планирование маршрута
- •Итоги
- •Дополнительная литература
- •Усложняем проект: отображение на карте изменения численности населения США
- •Глава 12. Находимся ли мы в компьютерной симуляции?
- •Проект #16. Жизнь, Вселенная и пруд черепахи Йертл
- •Код симуляции пруда
- •Следствия симуляции пруда
- •Измерение затрат на пересечение строк или столбцов сетки
- •Результаты
- •Стратегия
- •Итоги
- •Дополнительная литература
- •Дополнение
- •Усложняем проект: поиск безопасного места в космосе
- •Усложняем проект: а вот и Солнце
- •Усложняем проект: взгляд глазами собаки
- •Усложняем проект: кастомизированный поиск слов
- •Усложняем проект: что за сложную паутину мы плетем
- •Усложняем проект: идем вещать с горы
- •Решения для практических проектов
- •Глава 2. Определение авторства с помощью стилометрии
- •Охота на собаку Баскервилей с помощью распределения
- •Тепловая карта пунктуации
- •Глава 4. Отправка суперсекретных сообщений с помощью книжного шифра
- •Составление графика символов
- •Отправка секретов шифром времен Второй мировой войны
- •Глава 5. Поиск Плутона
- •Представление орбитальной траектории
- •Глава 6. Победа в лунной гонке с помощью «Аполлона-8»
- •Симуляция шаблона поисков
- •Заведи меня!
- •Останови меня!
- •Глава 7. Выбор мест высадки на Марсе
- •Убеждаемся, что рисунки становятся частью изображения
- •Визуализация профиля высоты
- •Отображение в 3D
- •Совмещение карт
- •Глава 8. Обнаружение далеких экзопланет
- •Обнаружение инопланетных мегаструктур
- •Обнаружение транзита астероидов
- •Добавление эффекта потемнения к краю
- •Обнаружение инопланетной армады
- •Обнаружение планеты с луной
- •Измерение продолжительности экзопланетного дня
- •Глава 9. Как различить своих и чужих
- •Размытие лиц
- •Глава 10. Ограничение доступа по принципу распознавания лиц
- •Усложняем проект: добавление пароля и видеозахвата
PYTHON ДЛЯ ХАКЕРОВ
Н Е Т Р И В И А Л Ь Н Ы Е З А Д А Ч И И П Р О Е К Т Ы
Л И В О Г А Н
2023
Ли Воган
Python для хакеров. Нетривиальные задачи и проекты
Перевел с английского Д. Брайт Научный редактор В. Кадочников
ББК 32.973.2-018.1 УДК 004.43
Воган Ли
В61 Python для хакеров. Нетривиальные задачи и проекты. — СПб.: Питер, 2023. — 384 с.: ил. — (Серия «Библиотека программиста»).
ISBN 978-5-4461-2968-3
«Pythonдляхакеров.Нетривиальныепроектыизадачи»делаетупорнареальныепроекты,такчтоотэкспериментирования с синтаксисом вы сразу перейдете к написанию полноценных программ. Развивая свои навыкиразработкинаPython,выбудетепроводитьнаучныеопыты,изучатьстатистикуирешатьзадачи,которые не давали покоя гениям на протяжении многих лет, и даже займетесь обнаружением далеких экзопланет.
Каждая глава начинается с четко поставленной цели и обсуждения способов решения задачи. Далее следуетсобственномиссияистратегиядействий,построеннаятакимобразом,чтобывынаучилисьмыслитькак программист. Вы будете руководить спасательной операцией береговой охраны, спланируете и осуществите полет космического корабля на Луну, реализуете ограничение доступа в секретную лабораторию с помощью распознавания лиц и не только это.
Программы,представленныевкниге,неотпугнутдаженовичков.Выбудетеосваиватьвсеболеесложные техники и наращивать навыки написания кода. Справившись со всеми миссиями, вы будете готовы к самостоятельному решению любых сложных реальных задач с помощью Python.
16+ (В соответствии с Федеральным законом от 29 декабря 2010 г. № 436-ФЗ.)
ISBN 978-1718500624 англ. |
© 2021 by Lee Vaughan. Real-World Python: A Hacker’s Guide to Solving |
|
Problems with Code, ISBN 9781718500624, published by No Starch Press Inc. |
|
245 8th Street, San Francisco, California United States 94103. |
|
Russian edition published under license by No Starch Press Inc. |
ISBN 978-5-4461-2968-3 |
© Перевод на русский язык ООО «Прогресс книга», 2023 |
|
© Издание на русском языке, оформление ООО «Прогресс книга», 2023 |
|
© Серия «Библиотека программиста», 2023 |
Права на издание получены по соглашению с No Starch Press. Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.
Информация, содержащаяся в данной книге, получена из источников, рассматриваемых издательством как надежные. Тем не менее, имея в виду возможные человеческие или технические ошибки, издательство не может гарантировать абсолютную точность и полноту приводимых сведений и не несет ответственности за возможные ошибки, связанные с использованием книги. Издательство не несет ответственности за доступность материалов, ссылки на которые вы можете найти в этой книге. На момент подготовки книги к изданию все ссылки на интернетресурсы были действующими.
Изготовлено в России. Изготовитель: ООО «Прогресс книга». Место нахождения и фактический адрес: 194044, Россия, г. Санкт-Петербург, Б. Сампсониевский пр., д. 29А, пом. 52. Тел.: +78127037373. Дата изготовления: 03.2023. Наименование: книжная продукция. Срок годности: не ограничен. Налоговая льгота — общероссийский классификатор продукции ОК 034-2014, 58.11.12 — Книги печатные профессиональные, технические и научные.
Импортер в Беларусь: ООО «ПИТЕР М», 220020, РБ, г. Минск, ул. Тимирязева, д. 121/3, к. 214, тел./факс: 208 80 01. Подписано в печать 30.01.23. Формат 70×100/16. Бумага офсетная. Усл. п. л. 30,960. Тираж 1000. Заказ 0000.
Посвящается моему дяде, Кеннету П. Вогану. Ты всегда и везде нес свет
Оглавление
Об авторе..................................................... |
13 |
О научных редакторах........................................... |
14 |
Благодарности.................................................. |
15 |
От издательства................................................. |
16 |
Введение..................................................... |
17 |
Для кого эта книга?............................................ |
17 |
Почему Python?............................................... |
18 |
План книги.................................................. |
18 |
Версия Python, платформа и IDE.............................. |
20 |
Установка Python........................................... |
21 |
Запуск Python............................................. |
22 |
Использование виртуальной среды............................ |
24 |
Вперед!..................................................... |
24 |
Глава 1. Спасение моряков с помощью теоремы Байеса............... |
25 |
Теорема Байеса.............................................. |
26 |
Проект #1. Поиск и спасение................................... |
29 |
Стратегия................................................ |
31 |
Установка библиотек Python.................................. |
31 |
Код для теоремы Байеса.................................... |
34 |
Время сыграть............................................. |
51 |
Итоги....................................................... |
53 |
Дополнительная литература.................................... |
53 |
Усложняем проект. Более грамотный поиск ........................ |
54 |
Усложняем проект. Поиск лучшей стратегии с помощью MCS.......... |
54 |
Усложняем проект. Вычисление вероятности обнаружения............ |
54 |
Оглавление 7 |
|
Глава 2. Установление авторства с помощью стилометрии.............. |
57 |
Проект #2: «Собака Баскервилей», «Война миров» |
|
и «Затерянный мир» ........................................... |
58 |
Стратегия................................................ |
58 |
Установка NLTK........................................... |
60 |
Корпусы текстов........................................... |
62 |
Код стилометрии........................................... |
63 |
Итоги....................................................... |
81 |
Дополнительная литература .................................... |
81 |
Практический проект: охота на собаку Баскервилей с помощью |
|
распределения............................................... |
82 |
Практический проект: тепловая карта пунктуации................... |
83 |
Усложняем проект: фиксирование частотности...................... |
84 |
Глава 3. Суммаризация текста с помощью обработки |
|
естественного языка.............................................. |
85 |
Проект #3. У меня есть мечта... суммаризация речи!................. |
86 |
Стратегия................................................ |
87 |
Веб-скрапинг............................................. |
87 |
Код для «У меня есть мечта».................................. |
88 |
Проект #4. Суммаризация речи с помощью gensim.................. |
96 |
Установка gensim.......................................... |
97 |
Код для суммаризации речи «Заправляйте свою кровать»......... |
97 |
Проект #5. Суммаризация речи с помощью облака слов............ |
100 |
Модули Word Cloud и PIL................................... |
102 |
Код для создания облака слов............................... |
102 |
Итоги...................................................... |
109 |
Дополнительная литература................................... |
109 |
Усложняем проект: ночные игры................................. |
109 |
Усложняем проект: суммаризация суммаризаций.................. |
111 |
Усложняем проект: суммаризация повести........................ |
111 |
Усложняем проект: важно не только что ты говоришь, но и как!........ |
113 |
Глава 4. Отправка суперсекретных сообщений с помощью |
|
книжного шифра............................................... |
114 |
Одноразовый блокнот........................................ |
115 |
Шифр «Ребекка»............................................. |
117 |
8 Оглавление |
|
Проект #6. Цифровой ключ к «Ребекке».......................... |
118 |
Стратегия............................................... |
119 |
Код для шифрования...................................... |
120 |
Отправка сообщений...................................... |
130 |
Итоги...................................................... |
131 |
Дополнительная литература................................... |
131 |
Практический проект: составление графика символов.............. |
132 |
Практический проект: отправка секретов шифром времен |
|
Второй мировой войны........................................ |
133 |
Глава 5. Поиск Плутона........................................ |
135 |
Проект #7. Воссоздание блинк-компаратора...................... |
136 |
Стратегия............................................... |
138 |
Данные................................................. |
138 |
Код блинк-компаратора.................................... |
139 |
Использование блинк-компаратора.......................... |
153 |
Проект #8. Обнаружение астрономических транзиентов путем |
|
дифференцирования изображений.............................. |
155 |
Стратегия............................................... |
156 |
Код для детектора транзиентов.............................. |
156 |
Использование детектора транзиентов........................ |
164 |
Итоги...................................................... |
164 |
Дополнительная литература................................... |
164 |
Практический проект: представление орбитальной траектории....... |
164 |
Практический проект: найди отличия............................. |
165 |
Усложняем проект: сосчитаем звезды............................ |
166 |
Глава 6. Победа в лунной гонке с помощью «Аполлона-8»............ |
167 |
Цель миссии «Аполлон-8»..................................... |
168 |
Траектория свободного возврата............................ |
169 |
Задача трех тел.......................................... |
170 |
Проект #9. На Луну с «Аполлоном-8»!........................... |
171 |
Использование модуля turtle................................ |
171 |
Стратегия............................................... |
175 |
Код программы для расчета свободного возврата «Аполлона-8»... |
176 |
Выполнение симуляции..................................... |
192 |
Оглавление |
9 |
Итоги...................................................... |
194 |
Дополнительная литература................................... |
194 |
Практический проект: симуляция шаблона поисков................. |
195 |
Практический проект: запусти меня!............................. |
196 |
Практический проект: останови меня!............................ |
197 |
Усложняем проект: симуляция в истинном масштабе................ |
198 |
Усложняем проект: реальный «Аполлон-8»........................ |
198 |
Глава 7. Выбор мест высадки на Марсе............................ |
199 |
Посадка на Марс............................................ |
199 |
Карта MOLA................................................ |
201 |
Проект #10. Выбор посадочных мест на Марсе.................... |
202 |
Стратегия............................................... |
202 |
Код для выбора мест посадки............................... |
204 |
Результаты............................................... |
222 |
Итоги...................................................... |
224 |
Дополнительная литература................................... |
224 |
Практический проект: убедимся, что рисунки становятся частью |
|
изображения................................................ |
225 |
Практический проект: визуализация профиля высот................ |
225 |
Практический проект: отображение в 3D......................... |
226 |
Практический проект: совмещение карт.......................... |
227 |
Усложняем проект: три в одном................................. |
229 |
Усложняем проект: перенос прямоугольников...................... |
230 |
Глава 8. Обнаружение далеких экзопланет......................... |
231 |
Транзитная фотометрия....................................... |
232 |
Проект #11. Симуляция транзита экзопланеты..................... |
234 |
Стратегия............................................... |
235 |
Код для транзита.......................................... |
235 |
Эксперименты с транзитной фотометрией..................... |
242 |
Проект #12. Получение изображений экзопланет.................. |
245 |
Стратегия............................................... |
245 |
Код для пикселизатора..................................... |
247 |
Итоги...................................................... |
253 |
Дополнительная литература................................... |
253 |
10 Оглавление |
|
Практический проект: обнаружение инопланетных мегаструктур...... |
254 |
Практический проект: обнаружение транзита астероидов........... |
256 |
Практический проект: добавление эффекта потемнения к краю....... |
258 |
Практический проект: обнаружение пятен на звездах............... |
260 |
Практический проект: обнаружение инопланетной армады.......... |
261 |
Практический проект: обнаружение планеты с Луной............... |
262 |
Практический проект: измерение продолжительности |
|
экзопланетного дня........................................... |
262 |
Усложняем проект: генерация динамической кривой блеска.......... |
263 |
Глава 9. Как различить своих и чужих............................. |
264 |
Обнаружение лиц на фотографиях.............................. |
264 |
Проект #13. Программирование робота-часового................. |
266 |
Стратегия............................................... |
269 |
Код.................................................... |
269 |
Результаты............................................... |
282 |
Обнаружение лиц в видеопотоке................................ |
283 |
Итоги...................................................... |
287 |
Дополнительная литература................................... |
287 |
Практический проект: размытие лиц............................. |
288 |
Усложняем проект: обнаружение кошачьих мордочек............... |
289 |
Глава 10. Ограничение доступа по принципу распознавания лиц....... |
290 |
Распознавание лиц с помощью LBPH............................. |
290 |
Схема распознавания лиц.................................. |
291 |
Извлечение гистограмм локальных бинарных шаблонов.......... |
293 |
Проект #14. Ограничение доступа к инопланетному артефакту....... |
296 |
Стратегия............................................... |
296 |
Поддержка модулей и файлов............................... |
296 |
Код для захвата видео..................................... |
297 |
Код для обучения алгоритма распознавания лиц................ |
302 |
Код для прогнозирования лиц............................... |
305 |
Результаты............................................... |
308 |
Итоги...................................................... |
309 |
Дополнительная литература ................................... |
309 |
Усложняем проект: добавление пароля и видеозахвата.............. |
310 |
Оглавление |
11 |
Усложняем проект: похожие лица и близнецы...................... |
311 |
Усложняем проект: машина времени............................. |
311 |
Глава 11. Создание интерактивной карты побега от зомби............. |
312 |
Проект #15. Визуализация плотности населения с помощью |
|
хороплетной карты........................................... |
312 |
Стратегия............................................... |
314 |
Библиотека анализа данных................................ |
315 |
Библиотеки bokeh и holoviews............................... |
317 |
Установка pandas, bokeh и holoviews......................... |
318 |
Работа с данными по уровню безработицы и плотности населения |
|
в округах и штатах........................................ |
318 |
Разбираем код holoviews................................... |
320 |
Код для отрисовки хороплетной карты........................ |
323 |
Планирование маршрута................................... |
332 |
Итоги...................................................... |
336 |
Дополнительная литература ................................... |
336 |
Усложняем проект: отображение на карте изменения численности |
|
населения США............................................. |
337 |
Глава 12. Находимся ли мы в компьютерной симуляции?.............. |
338 |
Проект #16. Жизнь, Вселенная и пруд черепахи Йертл.............. |
339 |
Код симуляции пруда...................................... |
339 |
Следствия симуляции пруда................................. |
342 |
Измерение затрат на пересечение строк или столбцов сетки...... |
344 |
Результаты............................................... |
347 |
Стратегия............................................... |
348 |
Итоги...................................................... |
349 |
Дополнительная литература ................................... |
349 |
Дополнение................................................. |
350 |
Усложняем проект: поиск безопасного места в космосе............. |
350 |
Усложняем проект: а вот и Солнце............................... |
351 |
Усложняем проект: взгляд глазами собаки........................ |
351 |
Усложняем проект: кастомизированный поиск слов................. |
351 |
Усложняем проект: оптимизация праздничного показа слайдов....... |
352 |
Усложняем проект: что за сложную паутину мы плетем.............. |
352 |
Усложняем проект: идем вещать с горы........................... |
352 |
12 Оглавление |
|
Решения для практических проектов......................... |
353 |
Глава 2. Определение авторства с помощью стилометрии........... |
353 |
Охота на собаку Баскервилей с помощью распределения........ |
353 |
Тепловая карта пунктуации................................. |
354 |
Глава 4. Отправка суперсекретных сообщений с помощью |
|
книжного шифра............................................. |
355 |
Составление графика символов............................. |
355 |
Отправка секретов шифром времен Второй мировой войны...... |
356 |
Глава 5. Поиск Плутона....................................... |
359 |
Представление орбитальной траектории...................... |
359 |
В чем разница?........................................... |
360 |
Глава 6. Победа в лунной гонке с помощью «Аполлона-8»........... |
362 |
Симуляция шаблона поисков................................ |
362 |
Заведи меня!............................................. |
363 |
Останови меня!........................................... |
366 |
Глава 7. Выбор мест высадки на Марсе........................... |
368 |
Убеждаемся, что рисунки становятся частью изображения........ |
368 |
Визуализация профиля высоты.............................. |
368 |
Отображение в 3D........................................ |
369 |
Совмещение карт......................................... |
370 |
Глава 8. Обнаружение далеких экзопланет....................... |
374 |
Обнаружение инопланетных мегаструктур..................... |
374 |
Обнаружение транзита астероидов.......................... |
375 |
Добавление эффекта потемнения к краю...................... |
377 |
Обнаружение инопланетной армады......................... |
378 |
Обнаружение планеты с Луной.............................. |
379 |
Измерение продолжительности экзопланетного дня............. |
382 |
Глава 9. Как различить своих и чужих............................ |
383 |
Размытие лиц............................................ |
383 |
Глава 10. Ограничение доступа по принципу распознавания лиц...... |
383 |
Усложняем проект: добавление пароля и видеозахвата........... |
383 |
Об авторе
Ли Воган — программист, поклонник поп-культуры, консультант, автор книги «Impractical Python Projects»1 (No Starch Press, 2018). За десятилетия работы научным руководителем в компании ExxonMobil он занимался проектированием и анализом компьютерных моделей, разрабатывал и тестировал программное обеспечение и, кроме того, обучал геофизиков и инженеров.
Обе свои книги, «Непрактичный Python» и «Python для хакеров», он написал для тех, кто самостоятельно изучает Python и хочет отточить свое мастерство, выполняя увлекательные и нетривиальные проекты.
1 «Непрактичный Python. Занимательные проекты для тех, кто хочет поумнеть».
О научных редакторах
Крис Крен (Chris Kren) окончил Университет Южной Алабамы со степенью магистра в сфере информационных систем. Сейчас он занимается кибербезопасностью и часто использует Python для отчетов, анализа данных и автоматизации.
Эрик Тодд Мортенсон (Eric Todd Mortenson) получил докторскую степень по математике в Висконсинском университете в Мадисоне. Он занимался исследованиями и преподаванием в Университете штата Пенсильвания, Университете Квинсленда, а также в Математическом институте Макса Планка. Сейчас он работает доцентом на факультете математики и компьютерных наук в СанктПетербургском государственном университете.
Благодарности
Команда No Starch Press работала над книгой во время пандемии — и совершила очередной трудовой подвиг. Их можно смело назвать профессионалами, которым нет равных, и эта книга появилась на свет лишь благодаря их усилиям. Выражаю всем сотрудникам свою глубочайшую признательность и уважение.
Также благодарю Криса Крена и Эрика Эвенчика (Eric Evenchick) за их ревью кода, Джозефа Б. Пола (Joseph B. Paul), Сару и Лору Воган — за их энтузиазм в косплее, а также Ханну Воган — за полезные фотографии.
Отдельное спасибо Эрику Т. Мортенсону за его подробную научную рецензию, содержащую множество полезных идей и дополнений. Эрик предложил добавить главу, посвященную байесовскому правилу, и предоставил множество практических проектов, а также дополнительных задач, включая применение к байесовским моделям методов Монте-Карло, подведение итогов романа по главам, моделирование взаимосвязей между Луной и «Аполлоном-8», просмотр Марса в 3D, вычисление кривой блеска для экзопланеты, обладающей луной, и некоторые другие. Благодаря его усилиям эта книга стала намного лучше.
В завершение выражаю благодарность участникам с ресурса stackoverflow.com. Одна из лучших особенностей Python заключается в его обширном и многогранном сообществе пользователей. Неважно, какой вопрос у вас возникнет, кто-нибудь на него обязательно ответит. Неважно, насколько странную задачу вы решаете, кто-нибудь наверняка уже делал что-то подобное. И всех этих людей вы можете найти на Stack Overflow.
От издательства
Ваши замечания, предложения, вопросы отправляйте по адресу comp@piter.com (издательство «Питер», компьютерная редакция).
Мы будем рады узнать ваше мнение!
На веб-сайте издательства www.piter.com вы найдете подробную информацию о наших книгах.