Программирование на языке Python для сбора и анализа данных
Курс «Программирование на языке Python для сбора и анализа данных» является общеуниверситетским факультативом ВШЭ. Его могут посещать все желающие.
- Лекции читает: Щуров Илья Валерьевич
 
- Семинары ведут: Щуров Илья Валерьевич, Будылин Роман Яковлевич
 
Содержание
Даты занятий
Лекции проходят по субботам в здании на Шаболовке, 26, аудитория 3317, с 12:10 до 13:30, плюс семинар с 13:40 до 15:00. Возможны изменения: следите за обновлениями в Piazza. По поводу семинаров в будни: следите за объявлениями в Piazza.
Текущие объявления
См. публичную страницу курса в Piazza.
Софт
Мы используем Python 3 и оболочку Jupyter (ранее известный как IPython Notebook). Чтобы их установить, проще всего скачать пакет Anaconda. Обратите внимание: вам нужна версия с Python 3.x.
После установки Anaconda у вас появится:
- Под Windows: в меню «Пуск» пункт «Anaconda», в нём подпункт «IPython Notebook».
 
- Под Mac OS X: приложение Anaconda Launcher, в нём пункт ipython-notebook.
 
После запуска IPython Notebook у вас откроется окно браузера (и лучше пусть это будет не Internet Explorer, под ним IPython Notebook работает с некоторым скриптом, а иногда не работает) со списком файлов. В нём надо выбрать New → Python 3. Откроется новая вкладка браузера, в ней будет запущен пустой notebook, состоящий из отдельных ячеек (cells). В ячейку с кодом можно вписать код и нажать Shift+Enter — он выполнится и вам покажут тут же результат.
Материалы
| неделя | тема | конспект | доп. материалы | видео | задачи | 
|---|---|---|---|---|---|
| 1 | 
Первое знакомство | 
ipynb | 
PT: арифметические операции, целые и вещественные числа | 
видео | 
ДЗ№1 до 23:00 13 октября | 
| 2 | 
Списки и цикл for | 
ipynb | 
PT: цикл for, списки | 
видео | 
ДЗ№2 до 23:00 8 ноября (дедлайн изменен в связи со сбоями informatics). | 
| 3 | 
Ввод-вывод списков и проверка условий | 
ipynb | 
PT: split и join, if, while | 
видео | 
ДЗ№3 до 23:00 8 ноября. | 
| 4 | 
Функции | 
ipynb | 
PT: функции | 
видео | 
ДЗ№4 до 23:00 18 ноября. Загружать через эту форму | 
| 5 | 
Словари. Списковые включения (list comprehensions)[1]] | 
ipynb | 
PT: словари, списковые включения[2]] | 
видео | 
ДЗ№5 до 24 ноября, 23:00. Загружать через эту форму. | 
| 6 | 
Сортировка. Форматирование строк | 
ipynb | 
О сортировке (англ.), форматирование строк (англ.), хитрости с вещественными числами (англ.) | 
видео | 
ДЗ№6 до 28 ноября, 23:00, сдавать здесь. | 
| 7 | 
Особенности работы с изменяемыми типами данных. Множества. Ещё немного про строки. Файловый ввод-вывод | 
ipynb | 
Ввод-вывод в Python 3 (англ.) | 
видео | 
ДЗ№7 до 8 декабря, 23:00, сдавать здесь. | 
| 8 | 
Извлечение данных из веб-страниц | 
ipynb | 
Оригинальная документация (англ.): requests BeautifulSoup. | 
видео | 
ДЗ№8 до 22 декабря, 23:00, сдавать здесь. | 
| 9 | 
Работа с открытыми API с помощью XML | 
ipynb | 
Документация по API MediaWiki (движка Википедии): основная на английском, на русском, автогенерированная на английском, на русском. | 
видео | |
| 10 | 
JSON и API. Управление браузером в RoboBrowser и Selenium | 
ipynb | 
RoboBrowser, неофициальная документация по Python-Selenium (её проще читать, чем официальную). | 
видео | 
|
| 11 | 
Библиотеки numpy (эффективные массивы) и matplotlib (рисование графиков) | 
ipynb | 
numpy quickstart, pyplot tutorial, matplotlib gallery | 
видео | 
ДЗ№11 до 19 января, 23:00. | 
| 12 | 
Библиотека pandas | 
ipynb | 
Официальная документация pandas: 10-минутное введение (обзор возможностей), pandas cookbook, индексация и выбор данных (подробно). | 
видео | 
|
| 13 | 
Ещё о pandas: мультииндексы, картинки и немного о погоде | 
ipynb | 
Официальная документация pandas: Мультииндексы | 
ДЗ№13 | 
Как использовать
Мы выкладываем материалы курса в виде ipynb-файлов. По ссылкам выше вы можете просмотреть эти файлы. Если вы хотите открыть этот файл у себя, то вам необходимо скачать его (нажав на иконку в правом верхнем углу страницы с лекцией) и положить в каталог, из которого Jupyter открывает ноутбуки: например, воспользовавшись кнопкой Upload в самом Jupyter (на экране со списком файлов). Также этот каталог можно найти по строчке Serving notebooks from local directory: /home/user/IPython, появляющейся в чёрненьком окошке при запуске Jupyter; здесь /home/user/IPython — искомый путь.
А ещё вы можете склонировать наш github-репозитарий, все ipynb-файлы будут там.
Сдача домашних заданий
Первые три ДЗ сдавались через систему informatics.mccme.ru], последующие сдаются через новую систему на сайте python.math-hse.info. (ДЗ№4 и ДЗ№5 по техническим причинам принимались через временную формочку, но будут перенесены в новую систему python.math-hse.info в ближайшее время.)
Данные для анализа
- Тарифы на услуги ЖКХ (Москва, 2012, источник: портал открытых данных г. Москвы).
 
Полезные ссылки
- Twitter с последними новостями о курсе.
 
- GitHub-репозитарий с конспектами лекций и другими материалами.
 
- YouTube-канал курса.
 
- Кратчайшее введение в Python для математики — шпаргалка по Python с математическим уклоном.
 
Примечания
- [↑] Лекцию прочитал Юрий Георгиевич Кудряшов
 
- [↑] PT использует термин «генераторы списков» вместо «списковые включения»