Научное программирование в Python
1. Основы языка программирования Python.
Особенности языка Python, области применения Python, философия Python ("The Zen of Python"), среда исполнения Python, начало работы с Python, физические строки, логические строки и блоки кода Python, управление потоком команд.
Типизация в Python, основные типы данных: NoneType, логический, числовой, строковый типы, коллекции, инициализация переменных, изменяемые и неизменяемые типы, преобразование типов, строки и байтовые последовательности, форматирование строк, срезы (slices), интернирование строк.
Функции в Python, анонимные функции и лямбда-выражения, глобальные, нелокальные и локальные переменные, переопределение глобальных переменных, модули, подключение модулей, пакеты, создание пакетов, импорт функций и модулей из пакетов.
2. Коллекции, функции и объектно-ориентированное программирование в Python.
Списки (lists), создание списков и доступ к элементам списка, срезы (slices), функции и методы списков, псевдонимы (aliases) в Python, поверхностное и глубокое копирование, списки и строки, диапазоны (ranges), итерируемые классы и классы-итераторы.
Декораторы функций, передача параметров в функцию, call by sharing, функции с переменным числом аргументов, упаковка и распаковка последовательностей, функция zip, оператор *, оператор **, функция map.
Ввод данных из стандартного потока ввода, работа с файлами, итерирование строк файла, обработка исключений, конструкция try-except-else-finally, создание собственных исключений, менеджер контекста, конструкция with-as.
Классы и объекты, конструктор и деструктор класса, значения по умолчанию, переменные класса и переменные объекта, методы класса и методы объекта, статические методы, геттеры и сеттеры свойств, использование декораторов свойств, наследование классов, переопределение (overriding) и перегрузка (overloading) методов, перегрузка операторов, абстрактные классы.
3. Научные вычисления в Python.
Библиотека NumPy, массив NumPy (ndarray), представления массивов, создание массивов и представлений, копирование массивов, структурированные массивы, типы элементов массива, форма массива, стратегии хранения массивов в памяти, итерирование массивов, страйды массива, изменение формы и страйдов, индексирование и срезы (slices) массива, fancy indexing, функция where.
Операции над массивами, конкатенация, разбиение и дублирование массивов, арифметические операции с массивами, broadcasting, универсальные функции (ufunc), векторно-матричные операции, математические и статистические методы массивов, методы линейной алгебры, модуль linalg, матрицы NumPy, классы matrix и ndarray, генерация случайных массивов, модуль random, загрузка и сохранение массивов в файл.
Возможности библиотеки pandas работы с данными. Возможности библиотек scipy, scikit-learn для проведения научных вычислений.
4. Визуализация данных в Python.
Этапы визуализации данных. Разведочный анализ данных. Первичная обработка данных. Важность визуализации в анализе данных. Инструменты визуализации данных. Библиотеки языка Python для визуализации. Библиотека matplotlib. Архитектура matplotlib. Бэкенд-слой. Класс Artist. Использование объектов класса Artist для визуализации. Фигуры, субфигуры и оси. Контейнеры грфических объектов. Жизненный цикл фигуры. Основные типы графиков в matplotlib. Визуализация на скриптовом уровне.