Python для сбора и анализа данных КНАД 22/23 — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
 
(не показаны 32 промежуточные версии этого же участника)
Строка 4: Строка 4:
  
 
[http://wiki.cs.hse.ru/Python_%D0%B4%D0%BB%D1%8F_%D1%81%D0%B1%D0%BE%D1%80%D0%B0_%D0%B8_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%9A%D0%9D%D0%90%D0%94 Вики-страница прошлого года]
 
[http://wiki.cs.hse.ru/Python_%D0%B4%D0%BB%D1%8F_%D1%81%D0%B1%D0%BE%D1%80%D0%B0_%D0%B8_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%9A%D0%9D%D0%90%D0%94 Вики-страница прошлого года]
 +
 +
[http://wiki.cs.hse.ru/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BD%D0%B0_Python_%D0%9A%D0%9D%D0%90%D0%94_22/23 Вики-страница курса "Программирование на Python", 1 модуль]
  
 
==Лекции==
 
==Лекции==
Строка 12: Строка 14:
  
 
2. '''17 января''' Модуль pandas. series и работа с одним датафреймом [https://colab.research.google.com/drive/1nd2r3t85U2jGrdms4z0WJ2UPW1G-YsPE?usp=sharing colab], [https://colab.research.google.com/drive/1RkmTX9RqT-qtdMMlUY_nBrPB_UO7ehU5?usp=sharing первый пункт]  
 
2. '''17 января''' Модуль pandas. series и работа с одним датафреймом [https://colab.research.google.com/drive/1nd2r3t85U2jGrdms4z0WJ2UPW1G-YsPE?usp=sharing colab], [https://colab.research.google.com/drive/1RkmTX9RqT-qtdMMlUY_nBrPB_UO7ehU5?usp=sharing первый пункт]  
 +
 +
3. '''24 января''' Вопросы производительности. GIL. Работа в Pandas с несколькими таблицами [https://docs.google.com/presentation/d/1y6O6oh1QlT1kJFPQxM8Kn8xyrnl8_Q1SwCin15ZnkAg/edit?usp=sharing презентация] [https://colab.research.google.com/drive/1RkmTX9RqT-qtdMMlUY_nBrPB_UO7ehU5?usp=sharing colab] [https://colab.research.google.com/drive/1fPkewwXJHDL94Y1jr5hXq2dSvAPvb-9e?usp=sharing colab performance]
 +
 +
4. '''31 января''' Визуализация данных в Python [https://colab.research.google.com/drive/1T1njeWLQfkViLrF27G-JYS7ebkwxGioX?usp=sharing magic в jupyter] [https://colab.research.google.com/drive/1RpHTrG6KYo26af8OoIRHrcnJcsOcWGMT?usp=sharing matplotlib1] [https://colab.research.google.com/drive/1ozGNbCPTJ23wE9gXWVswT7ikCK73JJjL?usp=sharing matplotlib2]  [https://colab.research.google.com/drive/1rMBLCIIJLPCD9mLKSXgmnaYj33dxuoQt?usp=sharing pandas_plot] [https://colab.research.google.com/drive/1rcr8nLmpKjCxK8MtzLrYld4u4Vr2RoNY?usp=sharing plotly] [https://colab.research.google.com/drive/1X6PA89UHuz4n4zGamIqAu0orESROcoI4?usp=sharing seaborn]
 +
 +
5. '''7 февраля''' Общее представление о MapReduce задачах, экосистеме Hadoop, HDFS [https://docs.google.com/presentation/d/1pDJ4nzHIpkUQo1e5AxMc6tZLV6Ut-0KCxGneuyUs9FQ/edit?usp=sharing презентация]
 +
 +
6. '''14 февраля''' Представление о реляционных базах данных. Основы языка SQL. Работа с таблицами в MySQL. [https://docs.google.com/presentation/d/14g4OHrgpVYGG7f5XZX-E0PBdptOFCCbAGDfq3IZIqdY/edit?usp=drivesdk презентация] [https://www.asozykin.ru/courses/sql источник вдохновения] [https://disk.yandex.ru/d/lKQKrdef4sDzIg скрипт для создания БД для MySQL]
 +
 +
7. '''21 февраля''' Spark [https://www.slideshare.net/Technopark/lecture-12-48215750 презентация техносферы]
 +
 +
8. '''28 февраля''' YARN [https://www.slideshare.net/Technopark/lecture-13-48215751 презентация], Hbase [https://www.slideshare.net/bbss88/12-hadoop-hbase-cassandra презентация]
 +
 +
9. '''7 марта''' Написание веб-приложения на Flask [https://disk.yandex.ru/d/Zy7ubJd4s9mLzw код]
 +
 +
10. '''24 марта''' Базы данных: индексы, ограничения, представления, транзакции, ACID [https://docs.google.com/presentation/d/1plMIgV3joJRJY87gIfVzjKIMNg4SkSCcGVVSdICklPs/edit?usp=sharing презентация] [https://colab.research.google.com/drive/1S-bn6YEVXZinOPgqbve1FOG_wCe10RwE?usp=sharing код]
  
 
==Семинары==
 
==Семинары==
  
Пятница 13:00 – 14:20, [https://us06web.zoom.us/j/87433550226?pwd=RWtRc1YwUTdnWGtPWEJ4cnBXNVh3QT09 zoom222 (Денис)] [https://us06web.zoom.us/j/83134885209?pwd=NHpnc3JoZGtqT2g5WStKN1kzOFBaUT09 zoom221 (Михаил)]
+
Пятница 13:00 – 14:20, [https://us06web.zoom.us/j/87433550226?pwd=RWtRc1YwUTdnWGtPWEJ4cnBXNVh3QT09 zoom 222 (Денис)] [https://us06web.zoom.us/j/83134885209?pwd=NHpnc3JoZGtqT2g5WStKN1kzOFBaUT09 zoom 221 (Михаил)]
 +
 
 +
[https://github.com/sanityseeker/lspy-2023 GitHub 222 группы (Денис)]
  
 
1. '''13 января''' Продолжение лекции по numpy [https://colab.research.google.com/drive/1ji_2UDhQFlvq6sDUm6XObR8IGg-KCCM9?usp=sharing colab]
 
1. '''13 января''' Продолжение лекции по numpy [https://colab.research.google.com/drive/1ji_2UDhQFlvq6sDUm6XObR8IGg-KCCM9?usp=sharing colab]
Строка 21: Строка 41:
 
2. '''20 января''' Решение задач на numpy [https://github.com/rougier/numpy-100/blob/master/100_Numpy_exercises_with_hints.md упражнения отсюда начиная с 9го]
 
2. '''20 января''' Решение задач на numpy [https://github.com/rougier/numpy-100/blob/master/100_Numpy_exercises_with_hints.md упражнения отсюда начиная с 9го]
  
[https://github.com/sanityseeker/lspy-2023 git 222]
+
3. '''27 января''' Решение задач на pandas. Решение задач на применение функций к датафреймам, работу с несколькими датафреймами. Сравнение производительности операций [https://colab.research.google.com/drive/117i2k1t5dKt0plS7GEpnJEtA43ie05kx?usp=sharing задачи]
 +
 
 +
4. '''3 февраля''' Практика построения визуализаций с помощью matplotlib [https://colab.research.google.com/drive/1XL-pkSCZ1lJ8lCxF2aBRGYQtiJlySUfl?usp=sharing задачи]  
 +
 
 +
5. '''10 февраля'''  Практика построения визуализаций с помощью plotly. Знакомство с mrjob [https://docs.google.com/presentation/d/1pDJ4nzHIpkUQo1e5AxMc6tZLV6Ut-0KCxGneuyUs9FQ/edit#slide=id.g115aabdacb8_0_166 tasks] [https://disk.yandex.ru/d/2a1VxyxscTJZRg code]
 +
 
 +
6.  '''17 февраля''' Практика работы с SQL [https://disk.yandex.ru/d/LIuVS63qDlFYow архив с заданием], [https://www.coursera.org/learn/python-for-web/programming/L7SA9/praktichieskoie-zadaniie-po-mysql/instructions источник архива (если авторские права, все дела)] [https://paiza.io/en/languages/mysql online editor]
 +
 
 +
7-8. '''3, 10 марта''' Решение задач на pySpark [https://towardsdatascience.com/six-spark-exercises-to-rule-them-all-242445b24565 tasks] [https://colab.research.google.com/drive/1MbboO_wp1dD2gunn0CF_IdJeQRZxnoHx?usp=sharing colab] [https://www.bigdataschool.ru/blog/what-to-use-in-spark-rdd-vs-dataframe-vs-dataset.html Сравнение RDD и DataFrame]
 +
 
 +
9. '''17 марта''' Миграции в базах данных, redis как пример NoSQL базы данных.
 +
 
 +
10. '''24 марта''' Оконные функции в SQL и pyspark.
  
 
==Домашнее задание==
 
==Домашнее задание==
Строка 29: Строка 61:
 
Ваше задание может быть проверено и возвращено на доработку на усмотрение преподавателя.
 
Ваше задание может быть проверено и возвращено на доработку на усмотрение преподавателя.
  
1. [https://colab.research.google.com/drive/1xG9SKOsXwq0wFW5NBtnSw1B8odFcAU0y?usp=sharing numpy]. Дедлайн 24.01.2022 10:30. Максимум без учёта бонусов – 10 баллов
+
1. [https://colab.research.google.com/drive/1xG9SKOsXwq0wFW5NBtnSw1B8odFcAU0y?usp=sharing numpy]. Дедлайн 24.01.2023 10:30. Максимум без учёта бонусов – 10 баллов
 +
 
 +
2. [https://colab.research.google.com/drive/1CWFPDleJQdv_eG_yRYXBOs9Aj7-osVAG?usp=sharing pandas]. Дедлайн 31.01.2023 10:30. Максимум без учёта бонусов – 10 баллов
 +
 
 +
3. [https://colab.research.google.com/drive/1Y0L_dyTWsNpby35OfzDYBLWIN7vxy_sw?usp=sharing join]. Дедлайн 09.02.2023 10:30. Максимум без учёта бонусов – 10 баллов
 +
 
 +
4. [https://colab.research.google.com/drive/1dKV1Y4iYIJtM83vfA9tAU9ctKzGDF0To?usp=sharing visualization]. Дедлайн 17.02.2023 13:00. Максимум без учёта бонусов – 10 баллов
 +
 
 +
5. [https://colab.research.google.com/drive/1vjSx5RHZKMYE_p6zt4qFPZeww8DH0Ipk?usp=sharing sql]. Дедлайн 28.02.2023 11:00. Максимум без учёта бонусов – 10 баллов
 +
 
 +
6. [https://colab.research.google.com/drive/17ZmTDTW78aoaXA-6KztTL7Dk1yfwXnNF?usp=sharing spark]. Дедлайн 28.03.2023 12:00. Максимум без учёта бонусов – 10 баллов
  
2. [https://colab.research.google.com/drive/1CWFPDleJQdv_eG_yRYXBOs9Aj7-osVAG?usp=sharing pandas]. Дедлайн 31.01.2022 10:30. Максимум без учёта бонусов – 10 баллов
+
ПРОЕКТ [бонус]. Написать на flask/django/любом другом python-фреймворке интернет магазин телефонов с использованием базы данных, с представлением товаров на странице в виде иконок и подробной карточкой для каждого товара (по образу и подобию лекции). Подумайте, какие характеристики товара нужно указывать. За корректную красивую реализацию с подходящим шаблоном и набором действий максимум можно получить 7 баллов. Реализуйте функционал сравнения телефонов, чтобы при этом было понятно, значение характеристики какого телефона лучше – максимум 3 балла. Проверьте, что если сузить окно браузера, то всё будет работать и сравнение не разъедется. В качестве данных достаточно 5-10 объявлений с картинками. Дедлайн 29.03.2023 23:59. Итого максимум без учёта бонусов – 10 баллов. Интересные идеи будут поощряться дополнительными баллами.
  
 
==Оценивание==
 
==Оценивание==

Текущая версия на 04:03, 10 февраля 2024

Записи занятий

https://disk.yandex.ru/d/jWp8yYwALIy8AQ

Вики-страница прошлого года

Вики-страница курса "Программирование на Python", 1 модуль

Лекции

Вторник 13:00 – 14:20, zoom

1. 10 января Модуль numpy. Основные операции для работы с numpy.array. презентация colab

2. 17 января Модуль pandas. series и работа с одним датафреймом colab, первый пункт

3. 24 января Вопросы производительности. GIL. Работа в Pandas с несколькими таблицами презентация colab colab performance

4. 31 января Визуализация данных в Python magic в jupyter matplotlib1 matplotlib2 pandas_plot plotly seaborn

5. 7 февраля Общее представление о MapReduce задачах, экосистеме Hadoop, HDFS презентация

6. 14 февраля Представление о реляционных базах данных. Основы языка SQL. Работа с таблицами в MySQL. презентация источник вдохновения скрипт для создания БД для MySQL

7. 21 февраля Spark презентация техносферы

8. 28 февраля YARN презентация, Hbase презентация

9. 7 марта Написание веб-приложения на Flask код

10. 24 марта Базы данных: индексы, ограничения, представления, транзакции, ACID презентация код

Семинары

Пятница 13:00 – 14:20, zoom 222 (Денис) zoom 221 (Михаил)

GitHub 222 группы (Денис)

1. 13 января Продолжение лекции по numpy colab

2. 20 января Решение задач на numpy упражнения отсюда начиная с 9го

3. 27 января Решение задач на pandas. Решение задач на применение функций к датафреймам, работу с несколькими датафреймами. Сравнение производительности операций задачи

4. 3 февраля Практика построения визуализаций с помощью matplotlib задачи

5. 10 февраля Практика построения визуализаций с помощью plotly. Знакомство с mrjob tasks code

6. 17 февраля Практика работы с SQL архив с заданием, источник архива (если авторские права, все дела) online editor

7-8. 3, 10 марта Решение задач на pySpark tasks colab Сравнение RDD и DataFrame

9. 17 марта Миграции в базах данных, redis как пример NoSQL базы данных.

10. 24 марта Оконные функции в SQL и pyspark.

Домашнее задание

Сдача задач проводится в anytask, инвайты в закреплённом сообщении телеграм чата. Максимум за одно дз – 10 баллов, по решению проверяющего могут быть добавлены бонусные баллы за изящные решения. Указанный в anytask максимальный балл – чисто формальное ограничение, оно больше, чем наш максимум, ибо в него входят бонусные баллы.

Ваше задание может быть проверено и возвращено на доработку на усмотрение преподавателя.

1. numpy. Дедлайн 24.01.2023 10:30. Максимум без учёта бонусов – 10 баллов

2. pandas. Дедлайн 31.01.2023 10:30. Максимум без учёта бонусов – 10 баллов

3. join. Дедлайн 09.02.2023 10:30. Максимум без учёта бонусов – 10 баллов

4. visualization. Дедлайн 17.02.2023 13:00. Максимум без учёта бонусов – 10 баллов

5. sql. Дедлайн 28.02.2023 11:00. Максимум без учёта бонусов – 10 баллов

6. spark. Дедлайн 28.03.2023 12:00. Максимум без учёта бонусов – 10 баллов

ПРОЕКТ [бонус]. Написать на flask/django/любом другом python-фреймворке интернет магазин телефонов с использованием базы данных, с представлением товаров на странице в виде иконок и подробной карточкой для каждого товара (по образу и подобию лекции). Подумайте, какие характеристики товара нужно указывать. За корректную красивую реализацию с подходящим шаблоном и набором действий максимум можно получить 7 баллов. Реализуйте функционал сравнения телефонов, чтобы при этом было понятно, значение характеристики какого телефона лучше – максимум 3 балла. Проверьте, что если сузить окно браузера, то всё будет работать и сравнение не разъедется. В качестве данных достаточно 5-10 объявлений с картинками. Дедлайн 29.03.2023 23:59. Итого максимум без учёта бонусов – 10 баллов. Интересные идеи будут поощряться дополнительными баллами.

Оценивание

Накоп = МИНИМУМ((ДЗ1 + ДЗ2 + ДЗ3 + ДЗ4 + ДЗ5 + ДЗ6 + Пр) / 6, 10)

Итог = 0.7 * Накоп + 0.3 * экз

Автомат = Накоп если Накоп >= 6 и есть желание получить автомат

Рекомендуемая основная литература

1. Python для анализа данных – курс от МФТИ и Mail.Ru Group

2. Hadoop. Система для обработки больших объемов данных

3. Основы SQL – курс Андрея Созыкина

4. Курс Техносферы Методы распределенной обработки больших объемов данных в Hadoop

5. https://numpy.org/, https://pandas.pydata.org/, https://matplotlib.org/

Рекомендуемая дополнительная литература

1. https://mrjob.readthedocs.io/en/latest/

2. Devpractice Team. Python. Визуализация данных. Matplotlib. Seaborn. Mayavi.

3. https://vk.com/itcookies/python

4. О функции apply в pandas