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

Встречайте: “Python для инженерных задач”

Python для инженерных задач

Книга предназначена для изучения языка Python с ориентацией на использование его в инженерных и научных вычислениях, начиная с установки интерпретатора и изучения основ языка и до применения специализированных библиотек. Основные темы касаются встроенных типов языка, функций и аннотации типов, особенностей динамической типизации, форматирования и обработки текста, в том числе с использованием регулярных выражений, работа с файлами. Подробно рассматриваются основные идеи объектно-ориентированного программирования и его особенности в Python. Также затрагиваются темы обработки исключений, тестирования приложений, описываются некоторые модули из стандартной библиотеки, а также множество сторонних библиотек, в частности, NumPy для математических вычислений, Pandas для обработки табличных данных, Matplotlib для построения различных видов графиков, библиотеки для работы с различными форматами файлов. Рассматриваются такие инструменты, как IPython и JupyterLab, применяемые в научных и инженерных областях.

Для студентов инженерных специальностей, а также для начинающих изучать язык

Изучение языка Python с ориентацией на использование его в инженерных и научных вычислениях.

В настоящее время Python является одним из наиболее популярных языков программирования. Благодаря легкости его изучения и удобству использования Python нашел применение в различных областях: начиная с создания веб-сервисов, приложений для ПК, маленьких скриптов, выполняющих однотипные задачи, до работы с нейронными сетями,   статистики в машинном обучении,  обработки данных. Также Python широко применяется для решения научных и инженерных задач благодаря многочисленным сторонним библиотекам. Python — лаконичный язык, он позволяет быстро писать код, реализующий требуемый алгоритм, отлаживать его и гарантировать работоспособность..  Python закрепился в научной среде и в образовании и является де-факто стандартным инструментом для решения математических задач, обработки табличных данных, построения графиков многих видов,.

Эта книга предназначена для обучения языку Python именно в таком направлении. Книга начинается с самых основ языка Python, его синтаксиса и базовых типов, затем описываются основные идеи объектно-ориентированного программирования и их реализация на Python. Наконец, рассказывается о стандартной библиотеке Python и множестве сторонних библиотек и инструментов, облегчающих работу в инженерной и научных областях.

 

  • Установка интерпретатора Python
  • Основы языка Python: описание синтаксиса и встроенных типов
  • Функции и аннотации типов
  • Объектно-ориентированное программирование
  • Обработка исключений
  • Работа с текстом и регулярные выражения
  • Установка сторонних библиотек и использование виртуальных окружений
  • Работа с файлами и файловой системой
  • Тестирование приложений
  • Библиотека NumPy для математических расчетов
  • Форматы хранения данных, используемые в научной среде
  • Построение двумерных и трехмерных графиков с помощью библиотеки Matplotlib
  • Работа с табличными данными с помощью библиотеки Pandas
  • Среды выполнения скриптов IPython и JupyterLab

Красивое лучше, чем уродливое. Явное лучше, чем неявное. Простое лучше, чем сложное. Из кодекса «Дзен Python»

 

Ильин Евгений

Евгений Ильин — кандидат технических наук, доцент кафедры «Радиофизика, антенны и микроволновая техника», входящей в состав института «Радиоэлектроника, инфокоммуникации и информационная безопасность» Московского авиационного института (национального исследовательского университета). Ведет курсы «Языки программирования в задачах радиофизики» и «Моделирование электродинамических задач численными методами». Сфера интересов и компетенций — языки программирования (Python, Rust и Java), электродинамика, антенны и устройства СВЧ, а также алгоритмы для их моделирования.

Книгу “Python для инженерных задач” можно купить в нашем интенет-магазине.

Предисловие. 13

Для кого эта книга?. 13

Структура книги. 13

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

Введение. 17

Общие сведения о Python. 17

Области применения Python. 18

Зачем Python инженеру?. 20

Типы языков программирования. 22

Компилируемые языки программирования. 22

Интерпретируемые языки программирования. 24

Языки программирования, компилируемые в байт-код. 25

Исходные коды к книге. 27

ЧАСТЬ I. Базовые понятия и встроенные типы.. 29

– ГЛАВА 1 –

Первое знакомство с Python. 31

Установка интерпретатора Python под Windows. 31

Hello, world! Работаем в интерактивном режиме. 37

Создание переменных. 39

Заключение. 43

– ГЛАВА 2 –

Простейшие типы и математика в Python. 45

Коротко о терминологии. 45

Целые числа. 46

Числа с плавающей точкой. 47

Комплексные числа. 49

Логический (булев) тип переменных. 52

Объект None. 53

Математические операторы.. 54

Приоритет операторов. 57

Инструкции присваивания. 58

Математические функции и модуль math. 59

Модуль cmath. 65

Заключение. 66

– ГЛАВА 3 –

Пишем скрипты на Python. 68

Создание скриптов. 68

Выполнение скриптов. 70

Комментарии и указание кодировки файла скрипта. 72

Инструкция ветвления if … elif … else. 74

Переносы строк. 79

Выражение if … else. 80

Цикл while. 81

Оператор :=. 84

Инструкция assert 86

Python Enhancement Proposals (PEP) 87

Заключение. 88

– ГЛАВА 4 –

Списки, кортежи и массивы.. 90

Способы хранения данных. 90

Массивы.. 90

Списки. 92

Кортежи. 93

Создание списков. 94

Создание кортежей. 95

Создание массивов. 96

Преобразование списков, кортежей и массивов друг в друга. 98

Доступ к элементам по индексу. 99

Срезы.. 101

Выполнение присваивания для сложных объектов. Операторы is и is not 104

Операторы in и not in. 109

Распаковка элементов коллекций. 109

Основные методы классов list, tuple и array. 111

Заключение. 118

– ГЛАВА 5 –

Перебор элементов коллекций. 119

Инструкция for … in. 119

Создание списков с помощью инструкции for … in. 123

Создание последовательности целых чисел. Класс range. 125

Перебор элементов с нумерацией. Класс enumerate. 127

Параллельный перебор элементов из нескольких коллекций. Класс zip. 128

Заключение. 132

– ГЛАВА 6 –

Словари. 133

Что такое «словари» и зачем они нужны?. 133

Создание словарей. 134

Основные операции со словарями. 136

Ограничения на типы ключей. 140

Обход элементов словаря с помощью цикла for. 141

Заключение. 143

– ГЛАВА 7 –

Множества. 144

Что такое множества и зачем они нужны?. 144

Создание множеств. 144

Создание неизменяемых множеств. 146

Основные операции над множествами. 146

Методы и операторы классов set и frozenset 147

Заключение. 152

– ГЛАВА 8 –

Строки. 153

Создание строк. 154

Многострочные литералы.. 154

Вставка символов Unicode. 158

«Сырые» строки. 159

Создание строкового представления чисел и других объектов. 160

Базовые операции над строками. 160

Некоторые методы класса str. 162

Заключение. 169

– ГЛАВА 9 –

Форматирование строк. 170

Использование оператора %.. 171

Использование метода format() 177

f-строки. 181

Заключение. 187

Часть II. Основные подходы.. 189

– ГЛАВА 10 –

Функции. 191

Создание функций. 191

«Утиная» типизация. 195

Именованные параметры функций. 197

Параметры со значениями по умолчанию.. 198

Функции с переменным числом позиционных параметров. 201

Функции с переменным числом именованных параметров. 202

Разделители параметров / и *. 205

Функции и глобальные переменные. 208

Заключение. 211

– ГЛАВА 11 –

Функции как объекты.. 212

Функция — это тоже объект. 212

Анонимные функции. 214

Строки документации. 218

Декораторы.. 221

Заключение. 228

– ГЛАВА 12 –

Модули и пакеты модулей. 229

Создание и импорт модулей. 229

Выполнение кода модулей при импорте. Переменные __name__ и __file__. 232

Пакеты модулей. 236

Заключение. 240

– ГЛАВА 13 –

Объектно-ориентированное программирование. Создание классов. 241

Что такое объектно-ориентированное программирование?. 241

Создание классов. 244

Видимость полей и методов классов. 248

Свойства. 251

Поля класса. 252

Методы класса. 255

Статические методы.. 257

Заключение. 259

– ГЛАВА 14 –

Объектно-ориентированное программирование.
Наследование и полиморфизм.. 260

Что такое наследование классов?. 260

Наследование классов. 260

Абстрактные базовые классы.. 267

Что такое полиморфизм?. 273

Множественное наследование. 273

Функции для определения родительских отношений классов. Класс object 280

Заключение. 282

– ГЛАВА 15 –

«Магические» методы классов и перегрузка операторов. 284

«Магические» методы классов. 284

Примеры перегрузки операторов. 286

Заключение. 296

– ГЛАВА 16 –

Сторонние библиотеки и инструменты для работы с ними. 298

Установка пакетов с помощью pip. 298

Файл зависимостей requirements.txt 304

Обновление и удаление пакетов. 305

Заключение. 307

– ГЛАВА 17 –

Виртуальные окружения. 308

Программа venv. 308

Работа с виртуальными окружениями. 311

Программа Poetry. 311

Создание проекта с помощью Poetry. Файл pyproject.toml 312

Создание виртуального окружения для проекта с помощью Poetry. 315

Менеджер пакетов и проектов uv. 319

Создание проекта с помощью uv. 320

Создание виртуального окружения для проекта с помощью uv. 322

Заключение. 326

– ГЛАВА 18 –

Аннотации типов. 328

Проблемы динамической типизации. 328

Что такое «аннотации типов» и зачем они нужны?. 329

Знакомство с Mypy. 331

Указание простейших типов и коллекций. 332

Обобщенные типы.. 338

Заключение. 342

– ГЛАВА 19 –

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

Обработка ошибок без использования исключений. 344

Что такое исключения, как и зачем их ловить?. 345

Перехват исключений. 349

Пользовательские исключения. Наследование исключений. 352

Конструкция try except else finally. 358

Заключение. 363

– ГЛАВА 20 –

Запись и чтение файлов. 364

Открытие файла и запись текстовых данных. 364

Закрытие файлов. Инструкция with. 369

Чтение текстовых данных. 371

Двоичные строки. 373

Запись и чтение двоичных данных. 378

Коротко о сериализации и десериализации. 383

Заключение. 386

– ГЛАВА 21 –

Работа с файловой системой. 387

Проблема формирования путей до файлов. 387

Формирование путей до файлов. Модуль os.path. 388

Формирование путей до файлов. Модуль pathlib. 395

Создание, копирование, перемещение и удаление файлов и каталогов. 399

Создание пустых файлов. 399

Создание каталогов. 399

Копирование файлов. 401

Копирование каталогов. 403

Удаление файлов и каталогов. 404

Переименование и перемещение файлов и каталогов. 405

Заключение. 408

– ГЛАВА 22 –

Передача параметров через командную строку. 410

Зачем это надо?. 410

Разбор параметров командной строки без использования библиотек. 412

Разбор командной строки с помощью модуля argparse. 415

Заключение. 425

– ГЛАВА 23 –

Регулярные выражения. 427

Что такое «регулярные выражения» и когда их используют?. 427

Символы подстановки. 428

Параметры регулярных выражений. 433

Инструкции группировки. 434

Поиск и замена с помощью регулярных выражений. 440

Коротко про функции из модуля re. 444

Заключение. 444

– ГЛАВА 24 –

Тестирование приложений. 446

Зачем нужны тесты, и какие они бывают?. 446

Создание тестов с помощью модуля unittest 447

Добавим еще тесты.. 453

Подготовка данных для тестов. 456

Способы запуска тестов. 458

Тесты в строках документации. 460

Заключение. 464

ЧАСТЬ III. Python для научных вычислений. 467

– ГЛАВА 25 –

Массивы из библиотеки NumPy. 469

Массивы NumPy. 469

Способы создания массивов. 472

Основные операции над массивами. 477

Индексация, срезы и виды.. 480

Формы массивов. 484

Транслирование (broadcasting) 490

Булевы массивы и фильтрация элементов по условию.. 492

Использование целочисленных массивов в качестве индексов. 495

Заключение. 496

– ГЛАВА 26 –

Форматы файлов для хранения числовых данных. 498

Текстовые файлы, хранящие данные в столбцах. 498

Работа с данными в формате CSV.. 504

Файлы форматов NPY и NPZ. 506

Файлы формата HDF5. 508

Создание файлов в формате HDF5. 509

Сторонние приложения для работы с файлами формата HDF5. 511

Чтение файлов в формате HDF5. 513

Другие форматы данных. 514

Заключение. 515

– ГЛАВА 27 –

Основы построения графиков с помощью библиотеки Matplotlib. 517

Установка библиотеки и первые примеры графиков. 517

Настройка внешнего вида кривых на графиках. 521

Способы задания цвета. 522

Стили линий. 524

Маркеры.. 525

Краткий способ задания внешнего вида кривых. 528

Несколько графиков в одних осях. 528

Добавление легенды.. 530

Создание нескольких графиков в одном окне на разных осях. 532

Настройка осей графика. 535

Объектно-ориентированный подход к построению графиков. 540

Заключение. 545

– ГЛАВА 28 –

Построение с помощью библиотеки Matplotlib более сложных графиков. 547

Диаграммы рассеяния. 547

Графики в полярной системе координат. 550

Столбчатые диаграммы.. 553

Круговые диаграммы.. 558

Построение трехмерных графиков. 562

Линии уровня. 571

Отображение векторов. 575

Заключение. 579

– ГЛАВА 29 –

Знакомство с Pandas. 581

Установка библиотеки Pandas. 581

Чтение файлов в формате CSV.. 582

Создание экземпляров класса DataFrame. 589

Выбор элементов и фильтрация данных из DataFrame. 591

Обработка данных с помощью DataFrame. 598

Группировка. 607

Заключение. 611

– ГЛАВА 30 –

Библиотека SciPy: решение сложных научных и инженерных задач. 613

Физические константы и специальные математические функции. 613

Преобразование Фурье. 619

Заключение. 640

– ГЛАВА 31 –

Интерактивные среды IPython и JupyterLab. 642

IPython — более удобный REPL. 642

От IPython к JupyterLab. 648

Заключение. 659

Заключение ко всей книге. 661

Литература. 662

Предметный указатель. 663

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