«Python для хакеров. Нетривиальные проекты и задачи» делает упор на реальные проекты, так что от экспериментирования с синтаксисом вы сразу перейдете к написанию полноценных программ. Развивая свои навыки разработки на Python, вы будете проводить научные опыты, изучать статистику и решать задачи, которые не давали покоя гениям на протяжении многих лет, и даже займетесь обнаружением далеких экзопланет.
Каждая глава начинается с четко поставленной цели и обсуждения способов решения задачи. Далее следует собственно миссия и стратегия действий, построенная таким образом, чтобы вы научились мыслить как программист. Вы будете руководить спасательной операцией береговой охраны, спланируете и осуществите полет космического корабля на Луну, реализуете ограничение доступа в секретную лабораторию с помощью распознавания лиц и не только это.
Программы, представленные в книге, не отпугнут даже новичков. Вы будете осваивать все более сложные техники и наращивать навыки написания кода. Справившись со всеми миссиями, вы будете готовы к самостоятельному решению любых сложных реальных задач с помощью Python.
Author(s): Ли Воган
Series: Библиотека программиста
Edition: 1
Publisher: Питер
Year: 2023
Language: Russian
Commentary: Publisher's PDF
Pages: 384
City: СПб.
Tags: Natural Language Processing; Computer Vision; Programming; Python; Face Recognition; Bayesian Inference; Data Visualization; Encryption; NLTK; pandas; Text Summarization; Bokeh; HoloViews; Object Detection; Elementary; Astronomy; Stylometry; Simulations
Об авторе
О научных редакторах
Благодарности
От издательства
Введение
Для кого эта книга?
Почему Python?
План книги
Версия Python, платформа и IDE
Установка Python
Запуск Python
Использование виртуальной среды
Вперед!
Глава 1. Спасение моряков с помощью теоремы Байеса
Теорема Байеса
Проект #1. Поиск и спасение
Стратегия
Установка библиотек Python
Код для теоремы Байеса
Время сыграть
Итоги
Дополнительная литература
Усложняем проект. Более грамотный поиск
Усложняем проект. Поиск лучшей стратегии с помощью MCS
Усложняем проект. Вычисление вероятности обнаружения
Глава 2. Установление авторства с помощью стилометрии
Проект #2: «Собака Баскервилей», «Война миров» и «Затерянный мир»
Стратегия
Установка NLTK
Корпусы текстов
Код стилометрии
Итоги
Дополнительная литература
Практический проект: охота на собаку Баскервилей с помощью распределения
Практический проект: тепловая карта пунктуации
Усложняем проект: фиксирование частотности
Глава 3. Суммаризация текста с помощью обработки естественного языка
Проект #3. У меня есть мечта... суммаризация речи!
Стратегия
Веб-скрапинг
Код для «У меня есть мечта»
Проект #4. Суммаризация речи с помощью gensim
Установка 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. Ограничение доступа по принципу распознавания лиц
Усложняем проект: добавление пароля и видеозахвата