Опубликовано

Python с нуля до анализа данных!

Python — это просто. Пошаговое руководство по программированию и анализу данных

Представляем книгу “Python — это просто. Пошаговое руководство по программированию и анализу данных“.

Рассмотрены основы синтаксиса языка Python на примере дистрибутива Anaconda. Показаны приложения IPython, Spyder IDE, Jupyter Notebook. Описан синтаксис переменных, функций, циклов. Подробно изучаются структуры данных в Python: строки, списки, кортежи, множества и словари. Объясняется понятие классов и их применение в объектно-ориентированном программировании. Описаны возможности библиотеки обработки изображений Pillow, библиотеки Tkinter для создания приложений с графическим интерфейсом. Отдельный раздел посвящен обработке ошибок и исключений в программах. Рассматриваются библиотеки NumPy и Pandas, приводятся практические примеры их использования для анализа и обработки данных. Описана библиотека Matplotlib и ее возможности в сфере визуализации данных.

По ходу изучения материала книги всегда держите перед собой открытую среду Jupyter Notebook, т. к. это позволит вам сразу же практиковаться в написании кода и получить уверенное представление об основах языка. Ничто так не стимулирует обучение, как живой результат на собственном компьютере. Все примеры кода, использованные в этой книге, я загрузил в свой репозиторий на GitHub для вашего ознакомления: https://github.com/nilabhnishchhal/Python-Made-Easy.

Эта книга исповедует активный подход к обучению и вдохновляет читателя исследовать и экспериментировать, а не просто впитывать теорию.

• Исследуйте возможности Python с использованием дистрибутива Anaconda
• Узнайте, как установить и использовать Python на своем компьютере
• Создавайте свои переменные, объекты и изучите их синтаксис
• Изучите встроенные типы объектов Python, такие как строки, списки, кортежи, множества и словари
• Научитесь вызывать встроенные функции, а также писать свои собственные
• Организуйте свой код и другие объекты в более крупные компоненты с помощью модулей
• Исследуйте классы — инструмент объектно-ориентированного программирования
• Пишите сложный код, научитесь обрабатывать ошибки и исключения
• Узнайте о массивах NumPy и операциях с ними
• Изучите анализ данных с помощью Pandas
• Погрузитесь в захватывающий мир визуализации с использованием Matplotlib
• Научитесь создавать приложения Python с графическим интерфейсом

Изучите программирование на Python, начиная с самых основ и заканчивая использованием библиотек для анализа данных и визуализации. Эта книга поможет освоить Python как абсолютным новичкам, так и опытным программистам, знакомым с другими языками. В нее включены все актуальные на сегодняшний день расширения Python.

Книгу можно купить в нашем интернет-магазине.

Предисловие…………………………………………………………………………………………… 19

О книге………………………………………………………………………………………………………………………………………… 19

Как получить максимум от этой книги…………………………………………………………………………………….. 19

Структура книги………………………………………………………………………………………………………………………… 20

Об авторе……………………………………………………………………………………………….. 23

Благодарности……………………………………………………………………………………….. 27

Глава 1. Введение в Data Science и основы программирования………………. 29

1.1. Введение в Data Science……………………………………………………………………………………………………… 29

1.1.1. Зачем нам Data Science?……………………………………………………………………………………………….. 30

1.1.2. История Data Science…………………………………………………………………………………………………….. 31

1.1.2.1. Данные в древности…………………………………………………………………………………………….. 31

1.1.2.2. Появление статистики…………………………………………………………………………………………. 32

1.1.2.3. Зарождение современного хранения данных……………………………………………………. 32

1.1.2.4. Появление больших центров обработки данных……………………………………………… 33

1.1.2.5. Появление Интернета………………………………………………………………………………………….. 33

1.1.3. Настоящее и будущее Data Science…………………………………………………………………………….. 34

1.1.4. Чем занимается специалист по Data Science?…………………………………………………………….. 35

1.1.5. Как это делается?………………………………………………………………………………………………………….. 35

1.1.6. Предпосылки для Data Science…………………………………………………………………………………….. 35

1.1.7. Профессии в области Data Science………………………………………………………………………………. 36

1.2. От Data Science к программированию………………………………………………………………………………. 37

1.3. Основы компьютерного программирования…………………………………………………………………….. 38

1.3.1. Что такое программирование?…………………………………………………………………………………….. 38

1.3.2. Компьютерный алгоритм……………………………………………………………………………………………… 39

1.3.2.1. Последовательные операторы……………………………………………………………………………. 40

1.3.2.2. Условные операторы…………………………………………………………………………………………… 41

1.3.2.3. Цикл или итерации………………………………………………………………………………………………. 41

1.3.3. Блок-схемы…………………………………………………………………………………………………………………….. 41

1.3.4. Что такое язык программирования?……………………………………………………………………………. 42

1.3.5. Что такое исходный код?……………………………………………………………………………………………… 44

1.3.6. Как запустить исходный код?……………………………………………………………………………………… 45

1.3.7. Компилятор……………………………………………………………………………………………………………………. 45

1.3.8. Интерпретатор………………………………………………………………………………………………………………. 46

1.3.8.1. Сравнение компилятора и интерпретатора………………………………………………………. 47

1.3.9. Что такое интегрированная среда разработки (IDE)?……………………………………………….. 47

1.3.10. Spyder IDE……………………………………………………………………………………………………………………. 48

1.4. Резюме………………………………………………………………………………………………………………………………….. 49

1.5. Упражнения…………………………………………………………………………………………………………………………. 49

1.5.1. Ответьте на вопросы…………………………………………………………………………………………………….. 49

1.5.2. Правда или ложь…………………………………………………………………………………………………………… 49

1.5.3. Практические задания………………………………………………………………………………………………….. 50

1.5.4. Изучите самостоятельно………………………………………………………………………………………………. 50

Глава 2. Введение в Python…………………………………………………………………….. 51

2.1. Что такое Python?……………………………………………………………………………………………………………….. 51

2.1.1. Почему именно Python?………………………………………………………………………………………………… 51

2.1.2. Появление Python………………………………………………………………………………………………………….. 52

2.1.3. Python и другие языки программирования…………………………………………………………………. 53

2.1.4. Философия Python…………………………………………………………………………………………………………. 55

2.2. Преимущества Python по сравнению с другими языками……………………………………………….. 55

2.2.1. Простота………………………………………………………………………………………………………………………… 55

2.2.2. Легкость в изучении………………………………………………………………………………………………………. 55

2.2.3. Свободный и открытый исходный код……………………………………………………………………….. 55

2.2.4. Высокоуровневость………………………………………………………………………………………………………. 56

2.2.5. Портативность………………………………………………………………………………………………………………. 56

2.2.6. Интерпретируемость…………………………………………………………………………………………………….. 56

2.2.7. Интерпретаторы Python……………………………………………………………………………………………….. 56

2.2.7.1. IPython………………………………………………………………………………………………………………….. 57

2.2.7.2. CPython…………………………………………………………………………………………………………………. 57

2.2.7.3. IronPython…………………………………………………………………………………………………………….. 58

2.2.7.4. Jython…………………………………………………………………………………………………………………….. 58

2.2.7.5. PyPy……………………………………………………………………………………………………………………….. 58

2.2.7.6. PythonNet………………………………………………………………………………………………………………. 59

2.2.7.7. Stackless Python……………………………………………………………………………………………………. 59

2.2.8. Объектная ориентированность……………………………………………………………………………………. 59

2.2.9. Расширяемость………………………………………………………………………………………………………………. 60

2.2.10. Встраиваемость…………………………………………………………………………………………………………… 60

2.2.11. Внушительные библиотеки………………………………………………………………………………………… 60

2.2.12. Python для начинающих…………………………………………………………………………………………….. 61

2.3. Версии Python……………………………………………………………………………………………………………………… 62

2.3.1. Python 2………………………………………………………………………………………………………………………….. 62

2.3.2. Python 2.7……………………………………………………………………………………………………………………….. 62

2.3.3. Python 3………………………………………………………………………………………………………………………….. 62

2.3.4. Ключевые отличия версий……………………………………………………………………………………………. 63

2.4. Как установить и использовать Python…………………………………………………………………………….. 63

2.4.1. Дистрибутив Anaconda………………………………………………………………………………………………… 63

2.4.2. Почему именно Anaconda?…………………………………………………………………………………………… 64

2.4.3. Установка Anaconda в Windows………………………………………………………………………………….. 64

2.4.4. Установка Anaconda в MacOS…………………………………………………………………………………….. 68

2.5. Запуск Python через командную строку…………………………………………………………………………… 71

2.6. Приложения Anaconda……………………………………………………………………………………………………….. 73

2.7. Консоль IPython Qt……………………………………………………………………………………………………………… 73

2.8. Spyder IDE……………………………………………………………………………………………………………………………. 75

2.8.1. Компоненты Spyder IDE……………………………………………………………………………………………….. 76

2.8.1.1. Редактор текста……………………………………………………………………………………………………. 76

2.8.1.2. IPython консоль……………………………………………………………………………………………………. 77

2.8.1.3. Обозреватель переменных………………………………………………………………………………….. 77

2.8.1.4. Справка…………………………………………………………………………………………………………………. 79

2.9. Jupyter Notebook………………………………………………………………………………………………………………….. 80

2.9.1. Приложение Jupyter Notebook……………………………………………………………………………………… 80

2.9.2. Основные возможности веб-приложения……………………………………………………………………. 80

2.9.3. Документы Notebook…………………………………………………………………………………………………….. 80

2.9.4. Запуск сервера Notebook……………………………………………………………………………………………… 81

2.9.5. Создание нового документа Notebook………………………………………………………………………… 82

2.9.6. Открытие документа Notebook……………………………………………………………………………………. 82

2.9.7. Интерфейс документа Notebook………………………………………………………………………………….. 82

2.9.8. Структура документа Notebook………………………………………………………………………………….. 83

2.9.9. Ячейки кода…………………………………………………………………………………………………………………… 83

2.9.10. Ячейки Markdown……………………………………………………………………………………………………….. 83

2.9.11. Неформатированные ячейки……………………………………………………………………………………… 84

2.9.12. Рабочий процесс…………………………………………………………………………………………………………. 84

2.9.13. Горячие клавиши………………………………………………………………………………………………………… 84

2.9.14. Построение графиков………………………………………………………………………………………………….. 85

2.9.15. Совместимость с браузерами…………………………………………………………………………………….. 85

2.10. Что лучше использовать?…………………………………………………………………………………………………. 85

2.11. Резюме………………………………………………………………………………………………………………………………… 86

2.12. Упражнения……………………………………………………………………………………………………………………….. 87

2.12.1. Ответьте на вопросы…………………………………………………………………………………………………… 87

2.12.2. Правда или ложь…………………………………………………………………………………………………………. 87

2.12.3. Изучите самостоятельно…………………………………………………………………………………………….. 88

Глава 3. Основы Python…………………………………………………………………………. 89

3.1. Запуск Python………………………………………………………………………………………………………………………. 89

3.1.1. Использование Spyder IDE…………………………………………………………………………………………… 89

3.1.2. Использование Jupyter Notebook…………………………………………………………………………………. 91

3.2. Начнем с «Hello World!»……………………………………………………………………………………………………… 92

3.3. Использование Python как калькулятора…………………………………………………………………………. 93

3.3.1. Числа………………………………………………………………………………………………………………………………. 93

3.3.2. Строки……………………………………………………………………………………………………………………………. 94

3.3.2.1. Конкатенация и повторение……………………………………………………………………………….. 95

3.3.2.2. Индексирование…………………………………………………………………………………………………… 95

3.3.2.3. Срезы…………………………………………………………………………………………………………………….. 96

3.4. Синтаксис кода Python……………………………………………………………………………………………………….. 97

3.4.1. Выражения…………………………………………………………………………………………………………………….. 97

3.4.1.1. Окончание выражений………………………………………………………………………………………… 98

3.4.2. Переменные и присваивание значений……………………………………………………………………….. 99

3.4.3. Имена переменных и ключевые слова………………………………………………………………………… 99

3.4.4. Выполнение выражений…………………………………………………………………………………………….. 100

3.5. Первые шаги в программировании………………………………………………………………………………….. 101

3.5.1. Подробнее о функции print()………………………………………………………………………………………. 102

3.5.2. Форматированный вывод…………………………………………………………………………………………… 104

3.5.3. Простейшая геометрия и print()…………………………………………………………………………………. 104

3.6. Поиск ошибок……………………………………………………………………………………………………………………. 105

3.6.1. Синтаксические ошибки…………………………………………………………………………………………….. 105

3.6.2. Ошибки времени выполнения…………………………………………………………………………………….. 106

3.6.3. Семантические ошибки………………………………………………………………………………………………. 106

3.6.4. Когда никакие средства не помогают……………………………………………………………………….. 107

3.7. Резюме………………………………………………………………………………………………………………………………… 108

3.8. Упражнения……………………………………………………………………………………………………………………….. 108

3.8.1. Ответьте на вопросы…………………………………………………………………………………………………… 108

3.8.2. Правда или ложь…………………………………………………………………………………………………………. 108

3.8.3. Практические задания………………………………………………………………………………………………… 109

3.8.4. Изучите самостоятельно…………………………………………………………………………………………….. 110

Глава 4. Объекты и операторы в Python………………………………………………. 111

4.1. Переменные……………………………………………………………………………………………………………………….. 111

4.1.1. Оператор присваивания……………………………………………………………………………………………… 112

4.1.2. Имена переменных……………………………………………………………………………………………………… 112

4.2. Структура программы……………………………………………………………………………………………………… 112

4.3. Объекты……………………………………………………………………………………………………………………………… 113

4.3.1. Классификация объектов……………………………………………………………………………………………. 113

4.3.2. Преимущества встроенных типов……………………………………………………………………………… 114

4.3.3. Идентификаторы, значения и типы объектов…………………………………………………………… 116

4.3.4. Изменяемые и неизменяемые объекты………………………………………………………………………. 117

4.4. Стандартная иерархия типов………………………………………………………………………………………….. 117

4.4.1. Встроенные константы………………………………………………………………………………………………. 118

4.4.2. Числовые типы…………………………………………………………………………………………………………….. 118

4.4.3. Последовательности…………………………………………………………………………………………………… 119

4.4.3.1. Неизменяемые последовательности………………………………………………………………… 119

4.4.3.2. Изменяемые последовательности…………………………………………………………………….. 121

4.4.4. Множества…………………………………………………………………………………………………………………… 121

4.4.5. Сопоставления…………………………………………………………………………………………………………….. 122

4.4.6. Вызываемые типы……………………………………………………………………………………………………….. 122

4.4.7. Модули………………………………………………………………………………………………………………………… 123

4.5. Операции с объектами в Python………………………………………………………………………………………. 124

4.6. Операторы…………………………………………………………………………………………………………………………. 124

4.6.1. Арифметические операторы………………………………………………………………………………………. 125

4.6.2. Операторы присваивания…………………………………………………………………………………………… 126

4.6.3. Операторы сравнения…………………………………………………………………………………………………. 127

4.6.4. Логические операторы……………………………………………………………………………………………….. 128

4.6.5. Операторы идентификации и вхождения………………………………………………………………….. 128

4.7. Отступы……………………………………………………………………………………………………………………………… 129

4.8. Комментарии в Python……………………………………………………………………………………………………… 130

4.9. Порядок выполнения………………………………………………………………………………………………………… 130

4.9.1. Изменение порядка выполнения………………………………………………………………………………… 131

4.9.2. Ассоциативность…………………………………………………………………………………………………………. 131

4.9.3. Площадь прямоугольника………………………………………………………………………………………….. 132

4.10. Динамическая типизация……………………………………………………………………………………………….. 132

4.11. Строгая типизация………………………………………………………………………………………………………….. 133

4.12. Логическая и физическая строка…………………………………………………………………………………… 133

4.13. Резюме……………………………………………………………………………………………………………………………… 134

4.14. Упражнения…………………………………………………………………………………………………………………….. 134

4.14.1. Ответьте на вопросы…………………………………………………………………………………………………. 134

4.14.2. Правда или ложь……………………………………………………………………………………………………….. 135

4.14.3. Практические задания………………………………………………………………………………………………. 135

4.14.4. Изучите самостоятельно………………………………………………………………………………………….. 136

 

Глава 5. Операторы управления потоком…………………………………………….. 137

5.1. Управление потоком…………………………………………………………………………………………………………. 137

5.2. Операторы if……………………………………………………………………………………………………………………… 137

5.2.1. Простой оператор if……………………………………………………………………………………………………. 137

5.2.2. Оператор if-else…………………………………………………………………………………………………………… 139

5.2.3. Оператор if–elif–else…………………………………………………………………………………………………… 140

5.3. Оператор цикла for…………………………………………………………………………………………………………… 142

5.3.1. Цикл for с блоком else…………………………………………………………………………………………………. 143

5.4. Функция range()…………………………………………………………………………………………………………………. 144

5.5. Цикл while………………………………………………………………………………………………………………………….. 145

5.6. Операторы break и continue…………………………………………………………………………………………….. 146

5.6.1. Оператор break……………………………………………………………………………………………………………. 146

5.6.2. Оператор continue………………………………………………………………………………………………………. 148

5.7. Оператор pass……………………………………………………………………………………………………………………. 149

5.8. Резюме………………………………………………………………………………………………………………………………… 150

5.9. Упражнения……………………………………………………………………………………………………………………….. 150

5.9.1. Ответьте на вопросы…………………………………………………………………………………………………… 150

5.9.2. Правда или ложь…………………………………………………………………………………………………………. 151

5.9.3. Практические задания………………………………………………………………………………………………… 152

Глава 6. Функции………………………………………………………………………………… 153

6.1. Определение функций………………………………………………………………………………………………………. 153

6.2. Типы функций……………………………………………………………………………………………………………………. 153

6.3. Встроенные функции………………………………………………………………………………………………………… 154

6.3.1. Описание некоторых встроенных функций………………………………………………………………. 154

6.4. Пользовательские функции………………………………………………………………………………………………. 156

6.4.1. Зачем создавать функции?…………………………………………………………………………………………. 156

6.4.2. Создание и вызов функций…………………………………………………………………………………………. 157

6.4.3. Входные параметры и аргументы…………………………………………………………………………….. 158

6.4.3.1. Параметры………………………………………………………………………………………………………….. 159

6.4.3.2. Аргументы………………………………………………………………………………………………………….. 160

6.4.3.3. Количество аргументов…………………………………………………………………………………….. 161

6.4.4. Возврат значений из функций……………………………………………………………………………………. 162

6.5. Варианты передачи аргументов……………………………………………………………………………………… 164

6.5.1. Аргументы со значением по умолчанию………………………………………………………………….. 164

6.5.2. Произвольное число аргументов (*args)…………………………………………………………………… 164

6.5.3. Именованные аргументы……………………………………………………………………………………………. 165

6.5.4. Произвольное число именованных аргументов (**kwargs)……………………………………. 166

6.6. Генераторы……………………………………………………………………………………………………………………….. 167

6.6.1. Определение генератора……………………………………………………………………………………………. 167

6.6.2. Пояснение к примеру………………………………………………………………………………………………….. 168

6.7. Резюме………………………………………………………………………………………………………………………………… 168

6.8. Упражнения……………………………………………………………………………………………………………………….. 169

6.8.1. Ответьте на вопросы…………………………………………………………………………………………………… 169

6.8.2. Правда или ложь…………………………………………………………………………………………………………. 169

6.8.3. Практические задания………………………………………………………………………………………………… 169

6.8.4. Изучите самостоятельно…………………………………………………………………………………………….. 170

Глава 7. ПРОЕКТ 1: Рисунки из символов с помощью циклов и функций 171

7.1. Рисунки с помощью символа * (звездочка)…………………………………………………………………….. 171

7.1.1. Прямоугольный треугольник……………………………………………………………………………………… 171

7.1.2. Перевернутый прямоугольный треугольник…………………………………………………………….. 172

7.1.3. Равносторонний треугольник…………………………………………………………………………………….. 174

7.1.4. Прямоугольный треугольник вверх ногами……………………………………………………………… 175

7.1.5. Стрелка вправо……………………………………………………………………………………………………………. 175

7.1.6. Практические задания………………………………………………………………………………………………… 176

7.2. Рисунки с помощью цифр…………………………………………………………………………………………………. 177

7.2.1. Прямоугольный треугольник……………………………………………………………………………………… 177

7.2.2. Прямоугольный треугольник 2………………………………………………………………………………….. 177

7.2.3. Прямоугольный треугольник вверх ногами……………………………………………………………… 178

7.2.4. Треугольник из обратных чисел………………………………………………………………………………… 179

7.2.5. Треугольник из квадратов обратных чисел……………………………………………………………… 179

7.2.6. Ромб……………………………………………………………………………………………………………………………… 179

7.2.7. Ромб с другим направлением чисел………………………………………………………………………….. 181

7.2.8. Стрелка влево……………………………………………………………………………………………………………… 182

7.2.9. Практические задания………………………………………………………………………………………………… 183

7.3. Резюме………………………………………………………………………………………………………………………………… 184

Глава 8. Структуры данных и последовательности……………………………… 185

8.1. Строки………………………………………………………………………………………………………………………………… 185

8.1.1. Строковые операции…………………………………………………………………………………………………… 186

8.1.2. Форматирование…………………………………………………………………………………………………………. 187

8.1.3. Методы split() и join()…………………………………………………………………………………………………. 188

8.2. Списки………………………………………………………………………………………………………………………………… 189

8.2.1. Индексы и срезы………………………………………………………………………………………………………….. 191

8.2.2. Методы списков………………………………………………………………………………………………………….. 192

8.2.3. Списковые включения………………………………………………………………………………………………… 193

8.2.4. Оператор del………………………………………………………………………………………………………………… 194

8.3. Кортежи……………………………………………………………………………………………………………………………… 195

8.3.1. Методы кортежей……………………………………………………………………………………………………….. 196

8.4. Множества…………………………………………………………………………………………………………………………. 196

8.4.1. Операции над множествами………………………………………………………………………………………. 197

8.4.2. Методы множеств……………………………………………………………………………………………………….. 198

8.5. Словари……………………………………………………………………………………………………………………………… 199

8.5.1. Методы словарей………………………………………………………………………………………………………… 200

8.6. Перебор последовательностей в цикле…………………………………………………………………………… 201

8.7. Резюме………………………………………………………………………………………………………………………………… 202

8.8. Упражнения……………………………………………………………………………………………………………………….. 202

8.8.1. Ответьте на вопросы…………………………………………………………………………………………………… 202

8.8.2. Правда или ложь…………………………………………………………………………………………………………. 203

8.8.3. Практические задания………………………………………………………………………………………………… 203

8.8.4. Изучите самостоятельно…………………………………………………………………………………………….. 204

Глава 9. Ввод-вывод данных и работа с файлами………………………………… 205

9.1. Ввод данных……………………………………………………………………………………………………………………… 205

9.2. Форматированный вывод данных…………………………………………………………………………………… 207

9.2.1. Форматированные строки………………………………………………………………………………………….. 207

9.2.2. Строковый метод format()…………………………………………………………………………………………… 208

9.2.3. Форматирование строк вручную………………………………………………………………………………. 210

9.2.4. Функции str() и repr()…………………………………………………………………………………………………… 211

9.2.5. Старое форматирование строки………………………………………………………………………………… 212

9.3. Чтение и запись файлов……………………………………………………………………………………………………. 212

9.3.1. Методы файловых объектов………………………………………………………………………………………. 213

9.3.2. Создание файла и запись в него………………………………………………………………………………… 214

9.3.3. Открытие файла и чтение его содержимого……………………………………………………………… 215

9.3.4. Построчное чтение……………………………………………………………………………………………………… 215

9.3.5. Чтение и запись нетекстовых файлов………………………………………………………………………… 216

9.4. Резюме………………………………………………………………………………………………………………………………… 216

9.5. Упражнения……………………………………………………………………………………………………………………….. 216

9.5.1. Ответьте на вопросы…………………………………………………………………………………………………… 216

9.5.2. Правда или ложь…………………………………………………………………………………………………………. 217

9.5.3. Практические задания………………………………………………………………………………………………… 217

9.5.4. Изучите самостоятельно…………………………………………………………………………………………….. 218

Глава 10. ПРОЕКТ 2: Автоматизация обработки множества изображений 219

10.1. Изменение типа файла (расширения)……………………………………………………………………………. 221

10.2. Изменение размеров фотографий………………………………………………………………………………….. 223

10.3. Преобразование изображений в черно-белые……………………………………………………………… 223

10.4. Поворот изображений…………………………………………………………………………………………………….. 224

10.5. Изменение разрешения изображения……………………………………………………………………………. 225

10.6. Резюме……………………………………………………………………………………………………………………………… 226

10.7. Изучите самостоятельно………………………………………………………………………………………………… 226

Глава 11. Классы………………………………………………………………………………….. 227

11.1. Основные понятия…………………………………………………………………………………………………………… 227

11.1.1. Введение в объектно-ориентированное программирование………………………………… 227

11.1.2. Введение в понятие класса………………………………………………………………………………………. 229

11.2. Объект класса………………………………………………………………………………………………………………….. 229

11.2.1. Метод __init__………………………………………………………………………………………………………….. 230

11.3. Объекты экземпляров……………………………………………………………………………………………………… 231

11.3.1. Создание экземпляров класса………………………………………………………………………………….. 231

11.3.2. Как это работает………………………………………………………………………………………………………. 232

11.3.3. Пример использования экземпляров класса…………………………………………………………… 232

11.4. Объекты методов…………………………………………………………………………………………………………….. 234

11.5. Наследование………………………………………………………………………………………………………………….. 235

11.6. Множественное наследование………………………………………………………………………………………. 236

11.6.1. Переопределение методов……………………………………………………………………………………….. 239

11.7. Полиморфизм…………………………………………………………………………………………………………………… 241

11.8. Абстракция и инкапсуляция…………………………………………………………………………………………… 241

11.9. Как контролировать доступ…………………………………………………………………………………………… 242

11.9.1. Приватные переменные……………………………………………………………………………………………. 242

11.10. Резюме……………………………………………………………………………………………………………………………. 243

11.11. Упражнения…………………………………………………………………………………………………………………… 243

11.11.1. Ответьте на вопросы………………………………………………………………………………………………. 243

11.11.2. Правда или ложь…………………………………………………………………………………………………….. 243

11.11.3. Практические задания……………………………………………………………………………………………. 244

11.11.4. Изучите самостоятельно………………………………………………………………………………………… 245

Глава 12. Ошибки и обработка исключений………………………………………… 247

12.1. Ошибки и исключения…………………………………………………………………………………………………….. 247

12.1.1. Синтаксические ошибки…………………………………………………………………………………………… 247

12.1.2. Исключения……………………………………………………………………………………………………………….. 248

12.2. Вызов исключений………………………………………………………………………………………………………….. 249

12.2.1. Оператор raise…………………………………………………………………………………………………………… 249

12.2.2. Исключение AssertionError………………………………………………………………………………………. 250

12.3. Обработка исключений………………………………………………………………………………………………….. 251

12.3.1. Операторы try и except……………………………………………………………………………………………… 251

12.3.2. Блок else…………………………………………………………………………………………………………………….. 252

12.4. Завершающий блок………………………………………………………………………………………………………… 253

12.5. Резюме……………………………………………………………………………………………………………………………… 255

12.6. Упражнения…………………………………………………………………………………………………………………….. 255

12.6.1. Ответьте на вопросы…………………………………………………………………………………………………. 255

12.6.2. Правда или ложь……………………………………………………………………………………………………….. 255

12.6.3. Практические задания………………………………………………………………………………………………. 256

Глава 13. Модули и пакеты………………………………………………………………….. 257

13.1. Модули…………………………………………………………………………………………………………………………….. 257

13.1.1. Определение модуля…………………………………………………………………………………………………. 257

13.1.2. Подробнее о модулях……………………………………………………………………………………………….. 259

13.2. Импорт модулей……………………………………………………………………………………………………………… 259

13.2.1. Импорт модулей из других модулей……………………………………………………………………….. 259

13.2.2. Импорт имен из модуля напрямую………………………………………………………………………….. 260

13.2.3. Импорт всех имен из модуля……………………………………………………………………………………. 260

13.2.4. Импорт модуля под другим именем………………………………………………………………………… 260

13.3. Стандартные модули……………………………………………………………………………………………………… 261

13.4. Функция dir()……………………………………………………………………………………………………………………. 262

13.5. Пакеты……………………………………………………………………………………………………………………………… 263

13.5.1. Пример пакета sound……………………………………………………………………………………………….. 263

13.5.2. Вызов пакета для дальнейшего использования……………………………………………………… 265

13.5.3. Популярные пакеты в Python…………………………………………………………………………………… 266

13.5.3.1. Сбор данных…………………………………………………………………………………………………….. 266

13.5.3.2. Обработка данных и моделирование…………………………………………………………….. 266

13.5.3.3. Визуализация данных……………………………………………………………………………………… 268

13.6. Резюме……………………………………………………………………………………………………………………………… 269

13.7. Упражнения…………………………………………………………………………………………………………………….. 269

13.7.1. Ответьте на вопросы…………………………………………………………………………………………………. 269

13.7.2. Правда или ложь……………………………………………………………………………………………………….. 269

13.7.3. Изучите самостоятельно………………………………………………………………………………………….. 270

Глава 14. ПРОЕКТ 3: Конвертер валют с графическим интерфейсом…… 271

14.1. Введение в Tkinter…………………………………………………………………………………………………………… 271

14.2. Основные шаги в Tkinter…………………………………………………………………………………………………. 273

14.3. Окно интерфейса конвертера валют……………………………………………………………………………… 274

14.3.1. Использование метода pack()…………………………………………………………………………………… 275

14.3.2. Использование метода grid()……………………………………………………………………………………. 276

14.4. Код для конвертации валют…………………………………………………………………………………………… 277

14.5. Итоговое приложение…………………………………………………………………………………………………….. 279

14.6. Резюме……………………………………………………………………………………………………………………………… 282

14.7. Изучите самостоятельно………………………………………………………………………………………………… 282

Глава 15. Библиотека NumPy……………………………………………………………….. 283

15.1. Введение в NumPy…………………………………………………………………………………………………………… 283

15.1.1. Установка NumPy……………………………………………………………………………………………………… 284

15.1.2. Импорт NumPy………………………………………………………………………………………………………….. 284

15.1.3. Разница между списком Python и массивом NumPy………………………………………………. 284

15.1.4. Зачем нам NumPy?……………………………………………………………………………………………………. 285

15.2. Массив NumPy………………………………………………………………………………………………………………… 286

15.2.1. Размерность массива………………………………………………………………………………………………… 286

15.2.2. Другие атрибуты массива………………………………………………………………………………………… 287

15.3. Создание массива…………………………………………………………………………………………………………… 287

15.3.1. Массивы из нулей, единиц и случайных чисел……………………………………………………… 289

15.3.2. Массив из диапазона значений……………………………………………………………………………….. 290

15.3.3. Указание типа данных массива………………………………………………………………………………. 291

15.3.4. Вывод массивов………………………………………………………………………………………………………… 291

15.4. Сортировка, добавление и удаление элементов массива…………………………………………… 292

15.4.1. Сортировка………………………………………………………………………………………………………………… 292

15.4.2. Сложение (конкатенация)………………………………………………………………………………………… 292

15.4.3. Удаление……………………………………………………………………………………………………………………. 293

15.5. Форма и размер массива………………………………………………………………………………………………… 293

15.6. Изменение формы……………………………………………………………………………………………………………. 294

15.7. Добавление оси……………………………………………………………………………………………………………….. 295

15.8. Индексирование и срезы………………………………………………………………………………………………… 296

15.9. Создание массива из существующих данных……………………………………………………………… 298

15.10. Копии и представления массивов……………………………………………………………………………….. 299

15.10.1. Присваивание без копии…………………………………………………………………………………………. 300

15.10.2. Представление или неглубокая копия…………………………………………………………………… 300

15.10.3. Глубокая копия……………………………………………………………………………………………………….. 301

15.11. Массивы NumPy в реальной жизни…………………………………………………………………………….. 301

15.11.1. Электронные таблицы Excel………………………………………………………………………………….. 302

15.11.2. Аудиофайлы и временные ряды…………………………………………………………………………….. 302

15.11.3. Изображения……………………………………………………………………………………………………………. 303

15.12. Резюме……………………………………………………………………………………………………………………………. 304

Глава 16. Операции в NumPy……………………………………………………………….. 305

16.1. Основные операции над массивами……………………………………………………………………………… 305

16.1.1. Универсальные функции………………………………………………………………………………………….. 307

16.2. Транслирование……………………………………………………………………………………………………………… 308

16.3. Функции агрегирования…………………………………………………………………………………………………. 308

16.4. Двумерные массивы……………………………………………………………………………………………………….. 309

16.5. Уникальные элементы массива……………………………………………………………………………………… 311

16.6. Транспонирование и изменение формы матрицы………………………………………………………… 313

16.7. Обратный порядок элементов массива…………………………………………………………………………. 314

16.8. Сжатие многомерного массива в одномерный…………………………………………………………….. 316

16.9. Работа с математическими формулами………………………………………………………………………… 317

16.10. Сохранение массива в файл и чтение из файла…………………………………………………………. 318

16.11. Резюме……………………………………………………………………………………………………………………………. 319

Глава 17. Библиотека Pandas……………………………………………………………….. 321

17.1. Введение в Pandas…………………………………………………………………………………………………………… 321

17.1.1. Зачем нам Pandas?……………………………………………………………………………………………………. 321

17.1.2. Установка и импорт Pandas……………………………………………………………………………………… 322

17.1.3. Обработка данных в Pandas…………………………………………………………………………………….. 323

17.2. Тип данных DataFrame…………………………………………………………………………………………………… 323

17.2.1. Создание DataFrame…………………………………………………………………………………………………. 323

17.2.2. Индексы в DataFrame……………………………………………………………………………………………….. 324

17.2.3. Series в DataFrame…………………………………………………………………………………………………….. 324

17.3. Столбцы DataFrame……………………………………………………………………………………………………….. 325

17.3.1. Добавление столбца…………………………………………………………………………………………………. 325

17.3.2. Удаление столбца…………………………………………………………………………………………………….. 326

17.3.3. Изменение значений в столбце………………………………………………………………………………… 326

17.4. Строки DataFrame…………………………………………………………………………………………………………… 326

17.4.1. Выбор строки…………………………………………………………………………………………………………….. 326

17.4.2. Срез строки (выбор нескольких строк)……………………………………………………………………. 327

17.5. Операции с DataFrame……………………………………………………………………………………………………. 327

17.6. Чтение данных из файла………………………………………………………………………………………………… 328

17.6.1. Пояснение к данным из примера……………………………………………………………………………… 329

17.7. Запись данных в файл…………………………………………………………………………………………………….. 330

17.8. Проверка DataFrame………………………………………………………………………………………………………. 330

17.8.1. Атрибут dtypes…………………………………………………………………………………………………………… 330

17.8.2. Метод info()……………………………………………………………………………………………………………….. 331

17.8.3. Метод head()……………………………………………………………………………………………………………… 332

17.8.4. Метод tail()………………………………………………………………………………………………………………… 332

17.9. Выбор части DataFrame…………………………………………………………………………………………………. 333

17.9.1. Выбор столбцов………………………………………………………………………………………………………… 333

17.9.2. Выбор строк (фильтрация)……………………………………………………………………………………….. 334

17.9.3. Выбор строк и столбцов…………………………………………………………………………………………… 335

17.10. Резюме……………………………………………………………………………………………………………………………. 337

Глава 18. Pandas в действии…………………………………………………………………. 339

18.1. Добавление столбца……………………………………………………………………………………………………….. 339

18.2. Удаление столбцов…………………………………………………………………………………………………………. 340

18.3. Переименование столбцов……………………………………………………………………………………………… 340

18.4. Сводная статистика………………………………………………………………………………………………………… 341

18.5. Группировка по категориям…………………………………………………………………………………………… 342

18.6. Сортировка строк……………………………………………………………………………………………………………. 345

18.7. Объединение данных из нескольких таблиц………………………………………………………………… 345

18.7.1. Объединение объектов……………………………………………………………………………………………… 346

18.7.2. Объединение с использованием общего идентификатора…………………………………….. 347

18.8. Резюме……………………………………………………………………………………………………………………………… 350

Глава 19. Визуализация в Python………………………………………………………….. 351

19.1. Визуализация данных…………………………………………………………………………………………………….. 351

19.1.1. Важность визуализации данных……………………………………………………………………………… 351

19.1.2. Основы визуализации……………………………………………………………………………………………….. 351

19.1.3. Простой линейный график в Pandas………………………………………………………………………… 352

19.1.4. Базовая диаграмма рассеяния…………………………………………………………………………………. 354

19.1.5. Другие виды графиков………………………………………………………………………………………………. 355

19.1.6. Диаграмма размаха………………………………………………………………………………………………….. 357

19.1.7. Несколько графиков………………………………………………………………………………………………….. 358

19.1.8. Сохранение графика…………………………………………………………………………………………………. 358

19.2. Библиотеки для визуализации данных…………………………………………………………………………. 359

19.2.1. Matplotlib……………………………………………………………………………………………………………………. 359

19.2.2. Seaborn……………………………………………………………………………………………………………………….. 360

19.2.3. ggplot…………………………………………………………………………………………………………………………… 361

19.2.4. Bokeh………………………………………………………………………………………………………………………….. 362

19.2.5. Folium…………………………………………………………………………………………………………………………. 362

19.2.6. Gleam………………………………………………………………………………………………………………………….. 363

19.3. Резюме……………………………………………………………………………………………………………………………… 364

Глава 20. Визуализация с помощью Matplotlib Pyplot…………………………… 365

20.1. Введение и историческая справка…………………………………………………………………………………. 365

20.2. Основные объкты Matplotlib………………………………………………………………………………………….. 366

20.2.1. Иерархия объектов Matplotlib………………………………………………………………………………….. 368

20.2.2. Типы входных данных для графиков………………………………………………………………………. 369

20.3. Элементы рисунка………………………………………………………………………………………………………….. 369

20.3.1. Рисунок (Figure)………………………………………………………………………………………………………… 370

20.3.2. Графики (Axes)…………………………………………………………………………………………………………… 371

20.3.3. Оси (Axis)……………………………………………………………………………………………………………………. 371

20.3.4. Объекты Artist……………………………………………………………………………………………………………. 371

20.4. Два способа использования Matplotlib…………………………………………………………………………. 371

20.4.1. Объектно-ориентированный интерфейс…………………………………………………………………. 371

20.4.2. Интерфейс Pyplot………………………………………………………………………………………………………. 372

20.4.3. Так какой же способ лучше?……………………………………………………………………………………. 373

20.5. Построение схожих графиков с помощью функций…………………………………………………….. 373

20.6. Модуль Pyplot…………………………………………………………………………………………………………………. 375

20.7. Функция plot()………………………………………………………………………………………………………………….. 376

20.7.1. Построение индексированных данных…………………………………………………………………… 377

20.7.2. Построение нескольких наборов данных……………………………………………………………….. 377

20.7.3. Форматирование стиля…………………………………………………………………………………………….. 377

20.8. Параметры функции plot()……………………………………………………………………………………………… 379

20.8.1. Параметры х, у…………………………………………………………………………………………………………… 379

20.8.2. Строка формата (fmt)………………………………………………………………………………………………… 379

20.8.2.1. Маркеры…………………………………………………………………………………………………………… 379

20.8.2.2. Стили линий……………………………………………………………………………………………………… 380

20.8.2.3. Цвета…………………………………………………………………………………………………………………. 380

20.8.3. Данные (data)…………………………………………………………………………………………………………….. 380

20.9. Возвращаемый объект plot()………………………………………………………………………………………….. 381

20.10. Именованные аргументы (**kwargs)…………………………………………………………………………… 381

20.11. Построение графиков по меткам…………………………………………………………………………………. 382

20.12. Построение графиков с категориальными переменными………………………………………….. 383

20.13. Изменение свойств линии…………………………………………………………………………………………….. 383

20.14. Работа с несколькими рисунками и графиками…………………………………………………………. 384

20.15. Вставка текста на график…………………………………………………………………………………………….. 386

20.16. Использование математических выражений в тексте……………………………………………….. 387

20.16.1. Аннотирование текста……………………………………………………………………………………………. 387

20.17. Логарифмические и другие нелинейные оси………………………………………………………………. 388

20.18. Резюме……………………………………………………………………………………………………………………………. 390

Глава 21. Визуализация с помощью объектно-ориентированного интерфейса в Matplotlib         391

21.1. Сравнение объектно-ориентированного API и Pyplot API………………………………………….. 391

21.2. Данные для работы………………………………………………………………………………………………………… 392

21.3. Построение графика по умолчанию……………………………………………………………………………… 392

21.4. Управление стилями……………………………………………………………………………………………………….. 393

21.5. Разные настройки графика…………………………………………………………………………………………….. 394

21.6. Добавление элементов на график………………………………………………………………………………….. 397

21.7. Форматирование текста на графике……………………………………………………………………………… 398

21.7.1. Базовые команды для работы с текстом…………………………………………………………………. 399

21.8. Сохранение графика в файл…………………………………………………………………………………………… 401

21.9. Примеры графиков………………………………………………………………………………………………………….. 402

21.9.1. Гистограмма……………………………………………………………………………………………………………… 402

21.9.2. Кривые и ломаные линии…………………………………………………………………………………………. 403

21.9.3. Трехмерные графики………………………………………………………………………………………………… 404

21.9.4. Круговая диаграмма…………………………………………………………………………………………………. 405

21.9.5. Пример построения нескольких графиков………………………………………………………………. 407

21.10. Резюме……………………………………………………………………………………………………………………………. 407

Ответы на вопросы «Правда или ложь»……………………………………………….. 409

Библиография………………………………………………………………………………………. 411

Добавить комментарий