Открыто

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

Тема в разделе "Курсы по программированию", создана пользователем Toxich, 19 фев 2020.

Основной список: 26 участников

Резервный список: 24 участников

  1. 19 фев 2020
    #1
    Toxich
    Toxich ЧКЧлен клуба

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

    Интерактивный курс 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
    • Сделайте выводы о найденных взаимосвязях, подробно обоснуйте

    Продажник
     
    Последнее редактирование модератором: 19 фев 2020
    4 пользователям это понравилось.
  2. Последние события

    1. Djeks
      Djeks не участвует.
      26 май 2025
    2. Рыбак
      Рыбак не участвует.
      21 май 2025
    3. Рыбак
      Рыбак участвует.
      21 май 2025
    4. skladchik.com
      В складчине участвует 30 человек(а).
      8 мар 2025
  3. Обсуждение
  4. 15 май 2020
    #2
    megasvf
    megasvf ДолжникДолжник
    Старт 18 мая, а у нас ещё даже орга нету. С курсом можно попращаться?