Курс «Python для научных вычислений» предназначен для студентов, уже обладающих основными навыками в программировании на языке Python, а также знакомыми с теорией алгоритмов. Курс посвящен рассмотрению разнообразных применений Python для анализа данных, обработки и построения моделей и написания программных модулей.
Первый блок курса «Python для научных вычислений» нацелена на повторение и закрепление знаний в области функционального программирования, а также стандартов синтаксиса Python. В этой части рассматриваются представления функций в языке Python как объектов, рассматриваются безымянные (лямбда) выражения и на примерах демонстрируются области видимости переменных в функции и замыкания. Также более детально рассматриваются принципы объектно-ориентированного программирования, как наследование классов и написание собственных абстрактных структур на Python.
Кроме этого, в рамках блока студенты узнают о правильном использовании встроенных библиотек Python для работы с функциями и итерируемыми объектами (Functools, Itertools), научатся использовать и создавать собственные генераторы, конвейеры и корутины, и объединять их в пайплайны в рамках Python.
Также в блоке рассматриваются требования к синтаксической и технической структуре кода для использования в продуктовых сервисах, требования стандартов PEP и общие рекомендации по написанию правильно работающего и читаемого программного кода.
Второй блок курса посвящен анализу данных в Python с элементами статистики, а также обеспечению производительных вычислений. Студенты научатся оптимизации вычислений с помощью пакета NumPy и разносторонней работе с табличными данными в пакете Pandas.
Отдельное внимание уделяется методам визуализации данных. Рассматривается виды научных графиков для иллюстрации разнообразных зависимостей в обрабатываемых данных, и ряд пакетов Python, позволяющих осуществить отрисовку таких изображений: Matplotlib, Seaborn, Plotly, Bokeh и др.
В блоке также подробно рассмотрены статистические методы выявления зависимостей при анализе данных с использованием модулей SciPy и Statsmodels. Также в блоке рассматриваются способы решения оптимизационных задач вычислительными методами: поиск минимумов, максимумов функций и оптимизация функций на множестве параметров, в т.ч. с ограничениями.
Третий блок курса посвящен прикладному использованию Python, а также разнообразным особенностям и расширениям языка, используемым для ускорения работы кода. Рассматриваются способы работы с бинарными и текстовыми файлами, а также создание парсеров для отдельных форматов файлов. Также разбираются пакеты Cython и Numba для ускорения написанного на Python кода, встроенный модуль subprocess для запуска внешних программ изнутри Python, а также модули multiprocessing и concurrent для параллелизации вычислений.
В результате прохождения курса слушатели узнают, как производится анализ данных с помощью языка программирования Python, научатся предобрабатывать исходные данные в машиночитаемый вид, производить с обработанными данными объемные вычисления, анализировать данные, проверять статистические гипотезы, визуализировать разнообразные зависимости в данных, а также писать поддерживаемый и читаемый код для использования в команде разработчиков.
Преподаватели
- Арсений Зинкевич