Пишем эффективный код на Python
В этом курсе вы узнаете, как использовать встроенные структуры данных, функции и модули Python для написания более чистого, быстрого и эффективного кода.
Преподаватель
Виталий Кулиев
Закончил МФТИ. Программирую на Python около 10 лет. Последние 5 лет выбираю проекты, где машинное обучение и data science играют ключевую роль. На своем YouTube-канале делюсь практическим опытом в разработке
4часа
15видео
38упражнений
4050опыта
Описание курсаКак специалист по анализу данных, большую часть своего времени вы будете тратить на получение полезных сведений из данных, а не на ожидание завершения работы вашего кода. Написание эффективного кода Python может помочь сократить время выполнения и сэкономить вычислительные ресурсы, что в конечном итоге сократит время вашей работы. В этом курсе вы узнаете, как использовать встроенные структуры данных, функции и модули Python для написания более чистого, быстрого и эффективного кода. Мы изучим, как измерять время выполнения и профилировать код, чтобы найти проблемные места.
Затем вы попрактикуетесь в устранении этих проблемных мест и других нехороших шаблонах проектирования, используя стандартные библиотеки Python, NumPy и pandas. После прохождения этого курса у вас будут необходимые знания, чтобы начать писать эффективный код на Python!
1. Основы эффективности
В этой главе вы узнаете, что значит писать эффективный код на Python. Вы изучите стандартную библиотеку Python, узнаете о массивах NumPy и попрактикуетесь в использовании некоторых встроенных инструментов Python. В этой главе закладывается основа для принципов, рассмотренных далее.
2. Код синхронизации и профилирования
В этой главе вы узнаете, как считать и сравнивать время выполнения в различных подходах к программированию. Вы попрактикуетесь в использовании пакетов line_profiler и memory_profiler для профилирования вашего кода и выявления проблемных мест. Затем вы примените полученные знания на практике, заменив эти проблемные места эффективным кодом на Python.
Изучение времени выполнения кода
50
Ваша очередь! Используйте %timeit.
100
Указание количества повторов и циклов. Используйте timeit
50
Полное название или литеральный синтаксис
100
Использование магического режима timeit
50
Профилирование кода во время выполнения
50
Шаги по использованию lprun
50
Выявление проблемных мест. Использование lprun
50
Исправление проблемных мест. Использование lprun
50
Профилирование кода для измерения потребления памяти
50
Шаги по использованию mprun
50
Использование mprun
50
Использование %mprun
50
Заключение
100
3. Повышение эффективности
В этой главе рассматриваются более сложные советы и рекомендации для повышения эффективности. Вы изучите несколько полезных встроенных модулей для написания эффективного кода и попрактикуетесь в использовании теории множеств. Затем вы узнаете о циклах в Python и о том, как сделать их более эффективными.
Эффективное объединение, подсчет и итерирование
50
Сочетание имен и типов
100
Подсчет по образцу
100
Комбинации
100
Теория множеств
50
Сравнение данных
100
Поиск данных
100
Сбор данных
100
Устранение циклов
50
Сбор данных без циклов
100
Итоги и средние значения данных без цикла
100
Пишем циклы лучше
50
Одноразовый цикл расчета
100
Целостный цикл преобразования
100
Заключение
100
4. Основы оптимизации pandas
Эта глава предлагает краткое введение в эффективную работу с pandas DataFrames. Вы узнаете о различных вариантах перебора DataFrame. Затем вы узнаете, как эффективно применять функции к данным, хранящимся в DataFrame.
Введение в pandas DataFrame
50
Итерация с .iterrows()
100
Запуск дифференциалов с помощью .iterrows()
100
Метод итерирования: .itertuples()
50
Итерация с .itertuples()
100
Запуск дифференциалов с помощью .itertuples()
100
Альтернатива циклам в pandas
50
Анализ статистики с помощью .apply()
100
Решение проблемы с помощью .apply()
100
Оптимальная итерация pandas
50
Замена .iloc базовыми массивами
100
Заключение
100
Итоги изучения курса
50