Описание
Интерактивный курс Python для анализа данных – освоение Python с нуля
1. Базовый синтаксис и основы программирования на языке Python
2. Установка Python-дистрибутива Anaconda и прочих вспомогательных инструментов, подключение к удаленным серверам для вычислений
3. Основные концепции научного программирования на Python: от работы с разными типами данных и встроенными структурами до написания собственных модулей
4. Проведение описательного анализа данных (EDA): от чтения и предобработки до поиска и визуализации взаимосвязей
5. Высокоуровневые векторные вычисления с использованием библиотек NumPy, SciPy
6. Манипуляции и анализ данных при помощи структур библиотеки Pandas
7. Визуализация с библиотеками Matplotlib, Seaborn
1. Введение в Python, базовые конструкции, циклы
Содержание занятия:
- Почему Python?
- Использование терминала
- Установка Anaconda на Windows, Linux, macOS
- Подключение к удаленным серверам, Putty/ssh
- Запуск JupyterNotebook
- Правила оформления кода: PEP8, PEP20, PEP257
- Базовые операции: Python как калькулятор
- Переменные и типы, преобразование типов
- Базовые конструкции: условный оператор, конструкция if…else
- Циклы: for, while
Задание для отработки:
- Пользуясь инструкцией из лекции, установить Anaconda, запустить JupyterNotebook через терминал
- Вывести «Hello World!»
- Задача на условный оператор
- Использование циклов
- Пример: вывести по очереди все буквы в слове «Конкатенация», вывести только согласные, только уникальные символы; посчитать сумму чисел от 1 до 100
2. Структуры данных
Содержание занятия:
- Встроенные структуры:
- Список (list)
- Кортеж (tuple)
- Словарь (dict)
- Множество (set, frozenset)
- Стек (stack) и очередь (queue)
- Функции:
- Сигнатура
- Область видимости
- Аргументы по умолчанию
- Передача аргументов
- Lambda-функции
- Исключения
- Генераторы
Задание для отработки:
- По одной задаче на использование каждой из структур
- Переписать решение задачи из д.з. 1 с циклом for с использованием lambda-функции
- Написать функцию, которая вычисляет взвешенное среднее
- Добавить «защиту от дурака» в функцию из предыдущего задания, использовать исключения
- Написать генератор, который бьет list на непересекающиеся подмножества константной длины
3. Модули
Содержание занятия:
- Пакеты
- Классы:
- Конструирование
- Атрибуты
- Методы
- Приватность
- Магические методы
- Наследование
- Абстрактный класс
- Множественное наследование
Задание для отработки:
- Написать класс с заданными атрибутами и методами, сохранить в файлах .py
- Подгрузить модуль/модули в новый ноутбук, продемонстрировать правильность работы коды
4. Научные вычисления с NumPy
Содержание занятия:
- Структура np.ndarray:
- Типы данных
- Индексация
- Арифметические операции
- Преобразование типов
- Операции с массивами
- Многомерные массивы
- Многомерная арифметика
- Базовые статистические функции:
- np.sum, np.mean…
- Семплирование из распределений
- Матричные операции
- Линейная алгебра np.linalg
Задание для отработки:
- Прочитать заранее подготовленные одномерные данные с помощью соответствующей функции в NumPy
- Написать несколько простых функций, которые совершают заданные арифметические операции с данными (например, посчитать сумму всех элементов массива, сумму элементов не кратных 10)
- Сравнить производительность по времени своих функций с функциями, встроенными в библиотеку
- Подгрузить заранее подготовленный многомерный массив
- Сделать подвыборку массива, соответствующую некоторым условиям, провести с ней заданные матричные операции
- Написать функцию для поиска обратной матрицы к заданной, сравнить результат и производительность с встроенной в библиотеку функцией
5. Научные вычисления с NumPy и SciPy
Содержание занятия:
- Отказ от циклов:
- Векторные операции
- Тензорные операции
- Специальные структуры:
- Разреженные матрицы
- Матрицы Тоеплица scipy.linalg.toeplitz
- QR разложение
- LU разложение
- SVD разложение
Задание для отработки:
- Написать функцию, которая считает сумму квадратов элементов заданного массива
- Написать функцию, которая делает то же самое без использования циклов
- Сравнить результат и производительность по времени
- Задача на альтернативу циклу for c использованием матрицы Тоеплица
- Имплементировать самостоятельно SVD разложение без использования циклов, сравнить результат со встроенной функцией
6. Обработка данных с Pandas I
Содержание занятия:
- Структуры pd.Series и pd.DataFrame
- Базовая функциональность
- Чтение данных из файлов разных типов
- Подвыборки
- Индексация, типы индексов
- Мультииндексация
- Конкатенация, Join нескольких таблиц
- Сводные таблицы
Задание для отработки:
- Прочитать заранее подготовленные данные с использованием соответствующей функции в библиотеке Pandas
- Вывести на экран подвыборку датасета, которая соответствует некоторым заданным условиям на значения по столбцам
- Переименовать заданный столбец
- Добавить новый столбец для суммы значений в заданных столбцах
- Прочитать данные из второй заданной таблицы, сделать left join с первой
- Сделать сводную таблицу с заданными параметрами
- Сделать подвыборку сводной таблицы по заданным логическим условиям (использование мультииндекса)
7. Обработка данных с Pandas II
Содержание занятия:
- Datetime индекс
- GroupBy
- Оконные функции
- Resampling
- Встроенные статистические функции
- Принципы работы с текстовыми данными
Задание для отработки:
- Прочитать данные, преобразовать индекс в datetime
- Посчитать simple moving average по окну заданной длины
- Преобразовать минутные данные в 10-минутные
- Преобразовать 10-минутные данные в минутные с использованием backfill метода
- Задача на groupby: посчитать квантили, среднее, медиану для заданного уровня группировки
- Задача на текстовые данные
8. Визуализация данных с Matplotlib
Содержание занятия:
- Отображение одномерных и двумерных данных
- Свойства графика:
- Название осей
- Масштаб
- Масштабирование осей
- Варианты отрисовки
- Цветовая гамма
- Оси: несколько графиков как один объект
- Общие оси
- Масштабирование, полярные координаты
- Отрисовка категориальных данных
- Диаграммы, гистограммы
- Контурные графики
- Heatmap
- Отрисовка изображений, шкалы
- Афинные преобразования изображений
Задание для отработки:
- Построить график синуса, подписать оси
- Построить график синусоиды в полярных координатах
- Подгрузить известный стандартный датасет, например, Ирисы
- Построить scatter plot нескольких определенных переменных на одном графике, добавить название графика, название осей, лейблы, обозначить цветом метки классов
- Построить 4 графика переменных из датасета как один объект в логарифмической шкале, подобрать размер шрифта, масштаб, подписать каждый график
- Построить гистограмму с заданным количеством бинов для определенной переменной из массива выше
- Посчитать матрицу корреляций и построить heatmap
- Пользуясь инструкцией, загрузить картинку .jpg и вывести на экран в черно-белых тонах, в цвете
- Повернуть картинку под заданным углом и вывести изображение
9. Визуализация данных с Seaborn
Содержание занятия:
- Отрисовка статистических взаимосвязей
- Отрисовка категориальных данных
- Визуализация распределений
- Контроль основных параметров графиков
Задание для отработки:
- Подгрузить известный стандартный датасет, например, еще раз Ирисы
- Задать параметры графика: темный фон и разлиновкой (darkgrid), задать цветовую палитру на вкус студентов
- Построить графики попарных зависимостей переменных с помощью встроенной функции
- Построить boxplot, violinplot
- Подгрузить стандартный датасет для задачи регрессии, например, bostonhouses, построить график с отрисовкой линии регрессии (sns.jointplot)
- Построить гистограммы с отрисовкой распределения, используя встроенную функцию
- На основе построенных графиков, сделать выводы о зависимостях в датасете
10. Пайплайн описательного анализа данных с Python
Содержание занятия:
- Загрузка, чтение данных
- Контроль пропущенных значений, варианты заполнения
- Кодирование разных типов категориальных данных
- Описательные статистики
- Визуализация парных взаимосвязей
- Визуализация распределений переменных
- Heatmap матрицы подобия
Отзывы
Отзывов пока нет.