Курс Python для анализа данных [2020] [Дмитрий Романов] [Университет Искусственного Интеллекта]

Bot

Администратор
Команда форума
23 Янв 2020
166,127
2,914
113
Интерактивный курс 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 матрицы подобия


Задание для отработки:
  • Выбрать известный стандартный датасет или использовать данные, которые вы хотели бы изучить для своих рабочих задач
  • Подгрузите данные, проверьте на наличие Nan/Null
  • Выберите способ заполнения пропусков или выбросите соответствующие строки, выбор обоснуйте
  • Если в датасете есть категориальные переменные, закодируйте их одним из описанных на лекции методов, выбор обоснуйте
  • Посчитайте среднее, медиану, стандартное отклонение и другие статистические показатели для всех числовых переменных
  • Постройте все, на ваш взгляд, релевантные графики из предыдущего домашнего задания, выбор обоснуйте
  • Посчитайте матрицу корреляций, нарисуйте heatmap с использованием библиотеки seaborn
  • Сделайте выводы о найденных взаимосвязях, подробно обоснуйте


Продажник
 
Сверху Снизу