Программирование на языке Python для сбора и анализа данных: различия между версиями

Материал из MathINFO
Перейти к навигации Перейти к поиску
(Новая страница: «Курс «Программирование на языке Python для сбора и анализа данных» является общеуниверсит...»)
 
 
Строка 1: Строка 1:
 +
 
Курс «Программирование на языке Python для сбора и анализа данных» является общеуниверситетским факультативом ВШЭ. Его могут посещать все желающие.
 
Курс «Программирование на языке Python для сбора и анализа данных» является общеуниверситетским факультативом ВШЭ. Его могут посещать все желающие.
  
Строка 36: Строка 37:
 
|  1<br>
 
|  1<br>
 
|  Первое знакомство<br>
 
|  Первое знакомство<br>
|  [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%201.ipynb ipynb]<br>
+
|  [http://nbviewer.org/github/ischurov/pythonhse/blob/master/Lecture%201.ipynb ipynb]<br>
 
|  PT: [http://pythontutor.ru/lessons/inout_and_arithmetic_operations/ арифметические операции], [http://pythontutor.ru/lessons/int_and_float/ целые и вещественные числа]<br>
 
|  PT: [http://pythontutor.ru/lessons/inout_and_arithmetic_operations/ арифметические операции], [http://pythontutor.ru/lessons/int_and_float/ целые и вещественные числа]<br>
 
|  [http://www.youtube.com/watch?v=5Y5tKPKhurA видео]<br>
 
|  [http://www.youtube.com/watch?v=5Y5tKPKhurA видео]<br>
|  [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Problem%20Set%201.ipynb ДЗ№1] до 23:00 13 октября<br>
+
|  [http://nbviewer.org/github/ischurov/pythonhse/blob/master/Problem%20Set%201.ipynb ДЗ№1] до 23:00 13 октября<br>
 
|-
 
|-
 
|  2<br>
 
|  2<br>
 
|  Списки и цикл <code>for</code><br>
 
|  Списки и цикл <code>for</code><br>
|  [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%202.ipynb ipynb]<br>
+
|  [http://nbviewer.org/github/ischurov/pythonhse/blob/master/Lecture%202.ipynb ipynb]<br>
 
|  PT: [http://pythontutor.ru/lessons/for_loop/ цикл for], [http://pythontutor.ru/lessons/lists/ списки]<br>
 
|  PT: [http://pythontutor.ru/lessons/for_loop/ цикл for], [http://pythontutor.ru/lessons/lists/ списки]<br>
 
|  [https://www.youtube.com/watch?v=kBu3g-ITjY4 видео]<br>
 
|  [https://www.youtube.com/watch?v=kBu3g-ITjY4 видео]<br>
Строка 50: Строка 51:
 
|  3<br>
 
|  3<br>
 
|  Ввод-вывод списков и проверка условий<br>
 
|  Ввод-вывод списков и проверка условий<br>
|  [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%203.ipynb ipynb]<br>
+
|  [http://nbviewer.org/github/ischurov/pythonhse/blob/master/Lecture%203.ipynb ipynb]<br>
 
|  PT: [http://pythontutor.ru/lessons/lists/#section_2 split и join], [http://pythontutor.ru/lessons/ifelse/ if], [http://pythontutor.ru/lessons/while/ while]<br>
 
|  PT: [http://pythontutor.ru/lessons/lists/#section_2 split и join], [http://pythontutor.ru/lessons/ifelse/ if], [http://pythontutor.ru/lessons/while/ while]<br>
 
|  [http://www.youtube.com/watch?v=uzgaCV8KZA0 видео]<br>
 
|  [http://www.youtube.com/watch?v=uzgaCV8KZA0 видео]<br>
|  [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Problem%20Set%203.ipynb ДЗ№3] до 23:00 8 ноября.<br>
+
|  [http://nbviewer.org/github/ischurov/pythonhse/blob/master/Problem%20Set%203.ipynb ДЗ№3] до 23:00 8 ноября.<br>
 
|-
 
|-
 
|  4<br>
 
|  4<br>
 
|  Функции<br>
 
|  Функции<br>
|  [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%204.ipynb ipynb]<br>
+
|  [http://nbviewer.org/github/ischurov/pythonhse/blob/master/Lecture%204.ipynb ipynb]<br>
 
|  PT: [http://pythontutor.ru/lessons/functions/ функции]<br>
 
|  PT: [http://pythontutor.ru/lessons/functions/ функции]<br>
 
|  [http://www.youtube.com/watch?v=NYrYSFyCg4w видео]<br>
 
|  [http://www.youtube.com/watch?v=NYrYSFyCg4w видео]<br>
|  [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Problem%20Set%204.ipynb ДЗ№4] до 23:00 18 ноября. Загружать через [https://script.google.com/macros/s/AKfycbwapveMkbRU9Vt6ruMaWTS4_-2ahrDk_06ellNKPoGpqsLQ4r0/exec эту форму]<br>
+
|  [http://nbviewer.org/github/ischurov/pythonhse/blob/master/Problem%20Set%204.ipynb ДЗ№4] до 23:00 18 ноября. Загружать через [https://script.google.com/macros/s/AKfycbwapveMkbRU9Vt6ruMaWTS4_-2ahrDk_06ellNKPoGpqsLQ4r0/exec эту форму]<br>
 
|-
 
|-
 
|  5<br>
 
|  5<br>
 
|  Словари. Списковые включения (list comprehensions)[1]]<br>
 
|  Словари. Списковые включения (list comprehensions)[1]]<br>
|  [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%205.ipynb ipynb]<br>
+
|  [http://nbviewer.org/github/ischurov/pythonhse/blob/master/Lecture%205.ipynb ipynb]<br>
 
|  PT: [http://pythontutor.ru/lessons/dicts/ словари], [http://pythontutor.ru/lessons/lists/#section_3 списковые включения][2]]<br>
 
|  PT: [http://pythontutor.ru/lessons/dicts/ словари], [http://pythontutor.ru/lessons/lists/#section_3 списковые включения][2]]<br>
 
|  [http://www.youtube.com/watch?v=z8bu_b5BboI видео]<br>
 
|  [http://www.youtube.com/watch?v=z8bu_b5BboI видео]<br>
|  [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Problem%20Set%205.ipynb ДЗ№5] до 24 ноября, 23:00. Загружать через [https://script.google.com/macros/s/AKfycbyy1lHlDixtHV0ATcoKewwdFCGftxlKk5mzu7IxNWlsAq4ueU-9/exec эту форму].<br>
+
|  [http://nbviewer.org/github/ischurov/pythonhse/blob/master/Problem%20Set%205.ipynb ДЗ№5] до 24 ноября, 23:00. Загружать через [https://script.google.com/macros/s/AKfycbyy1lHlDixtHV0ATcoKewwdFCGftxlKk5mzu7IxNWlsAq4ueU-9/exec эту форму].<br>
 
|-
 
|-
 
|  6<br>
 
|  6<br>
 
|  Сортировка. Форматирование строк<br>
 
|  Сортировка. Форматирование строк<br>
|  [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%206.ipynb ipynb]<br>
+
|  [http://nbviewer.org/github/ischurov/pythonhse/blob/master/Lecture%206.ipynb ipynb]<br>
 
|  [https://docs.python.org/3/howto/sorting.html О сортировке] (англ.), [https://pyformat.info/ форматирование строк] (англ.), [https://docs.python.org/3/tutorial/floatingpoint.html#tut-fp-issues хитрости с вещественными числами] (англ.)<br>
 
|  [https://docs.python.org/3/howto/sorting.html О сортировке] (англ.), [https://pyformat.info/ форматирование строк] (англ.), [https://docs.python.org/3/tutorial/floatingpoint.html#tut-fp-issues хитрости с вещественными числами] (англ.)<br>
 
|  [http://www.youtube.com/watch?v=1w0NG-pfcsg видео]<br>
 
|  [http://www.youtube.com/watch?v=1w0NG-pfcsg видео]<br>
|  [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Problem%20Set%206.ipynb ДЗ№6] до 28 ноября, 23:00, сдавать [http://python.math-hse.info/ здесь].<br>
+
|  [http://nbviewer.org/github/ischurov/pythonhse/blob/master/Problem%20Set%206.ipynb ДЗ№6] до 28 ноября, 23:00, сдавать [http://python.math-hse.info/ здесь].<br>
 
|-
 
|-
 
|  7<br>
 
|  7<br>
 
|  Особенности работы с изменяемыми типами данных. Множества. Ещё немного про строки. Файловый ввод-вывод<br>
 
|  Особенности работы с изменяемыми типами данных. Множества. Ещё немного про строки. Файловый ввод-вывод<br>
|  [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%207.ipynb ipynb]<br>
+
|  [http://nbviewer.org/github/ischurov/pythonhse/blob/master/Lecture%207.ipynb ipynb]<br>
 
|  [https://docs.python.org/3/tutorial/inputoutput.html Ввод-вывод в Python 3] (англ.)<br>
 
|  [https://docs.python.org/3/tutorial/inputoutput.html Ввод-вывод в Python 3] (англ.)<br>
 
|  [https://www.youtube.com/watch?v=KaWGNPgUOHo видео]<br>
 
|  [https://www.youtube.com/watch?v=KaWGNPgUOHo видео]<br>
|  [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/ps7.ipynb ДЗ№7] до 8 декабря, 23:00, сдавать [http://python.math-hse.info/ здесь].<br>
+
|  [http://nbviewer.org/github/ischurov/pythonhse/blob/master/ps7.ipynb ДЗ№7] до 8 декабря, 23:00, сдавать [http://python.math-hse.info/ здесь].<br>
 
|-
 
|-
 
|  8<br>
 
|  8<br>
 
|  Извлечение данных из веб-страниц<br>
 
|  Извлечение данных из веб-страниц<br>
|  [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%208.ipynb ipynb]<br>
+
|  [http://nbviewer.org/github/ischurov/pythonhse/blob/master/Lecture%208.ipynb ipynb]<br>
 
|  Оригинальная документация (англ.): [http://docs.python-requests.org/en/latest/ requests] [http://www.crummy.com/software/BeautifulSoup/bs4/doc/ BeautifulSoup].<br>
 
|  Оригинальная документация (англ.): [http://docs.python-requests.org/en/latest/ requests] [http://www.crummy.com/software/BeautifulSoup/bs4/doc/ BeautifulSoup].<br>
 
|  [http://www.youtube.com/watch?v=3nPksaHTMGI видео]<br>
 
|  [http://www.youtube.com/watch?v=3nPksaHTMGI видео]<br>
|  [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/ps8.ipynb ДЗ№8] до 22 декабря, 23:00, сдавать [http://python.math-hse.info/ здесь].<br>
+
|  [http://nbviewer.org/github/ischurov/pythonhse/blob/master/ps8.ipynb ДЗ№8] до 22 декабря, 23:00, сдавать [http://python.math-hse.info/ здесь].<br>
 
|-
 
|-
 
|  9<br>
 
|  9<br>
 
|  Работа с открытыми API с помощью XML<br>
 
|  Работа с открытыми API с помощью XML<br>
|  [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%209.ipynb ipynb]<br>
+
|  [http://nbviewer.org/github/ischurov/pythonhse/blob/master/Lecture%209.ipynb ipynb]<br>
 
|  Документация по API MediaWiki (движка Википедии): [https://www.mediawiki.org/wiki/API:Main_page основная на английском], [https://www.mediawiki.org/wiki/API:Main_page/ru на русском], [https://en.wikipedia.org/w/api.php автогенерированная на английском], [https://ru.wikipedia.org/w/api.php на русском].<br>
 
|  Документация по API MediaWiki (движка Википедии): [https://www.mediawiki.org/wiki/API:Main_page основная на английском], [https://www.mediawiki.org/wiki/API:Main_page/ru на русском], [https://en.wikipedia.org/w/api.php автогенерированная на английском], [https://ru.wikipedia.org/w/api.php на русском].<br>
 
|  [http://www.youtube.com/watch?v=5aelkl2HAow видео]<br>
 
|  [http://www.youtube.com/watch?v=5aelkl2HAow видео]<br>
Строка 98: Строка 99:
 
|  10<br>
 
|  10<br>
 
|  JSON и API. Управление браузером в RoboBrowser и Selenium<br>
 
|  JSON и API. Управление браузером в RoboBrowser и Selenium<br>
|  [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%2010.ipynb ipynb]<br>
+
|  [http://nbviewer.org/github/ischurov/pythonhse/blob/master/Lecture%2010.ipynb ipynb]<br>
 
|  [http://robobrowser.readthedocs.org/en/latest/ RoboBrowser], [http://selenium-python.readthedocs.org/ неофициальная документация] по Python-Selenium (её проще читать, чем официальную).<br>
 
|  [http://robobrowser.readthedocs.org/en/latest/ RoboBrowser], [http://selenium-python.readthedocs.org/ неофициальная документация] по Python-Selenium (её проще читать, чем официальную).<br>
 
|  [http://www.youtube.com/watch?v=tC618tbA5Yk видео]<br>
 
|  [http://www.youtube.com/watch?v=tC618tbA5Yk видео]<br>
Строка 105: Строка 106:
 
|  11<br>
 
|  11<br>
 
|  Библиотеки <code>numpy</code> (эффективные массивы) и <code>matplotlib</code> (рисование графиков)<br>
 
|  Библиотеки <code>numpy</code> (эффективные массивы) и <code>matplotlib</code> (рисование графиков)<br>
|  [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%2011.ipynb ipynb]<br>
+
|  [http://nbviewer.org/github/ischurov/pythonhse/blob/master/Lecture%2011.ipynb ipynb]<br>
 
|  [https://docs.scipy.org/doc/numpy-dev/user/quickstart.html numpy quickstart], [http://matplotlib.org/users/pyplot_tutorial.html pyplot tutorial], [http://matplotlib.org/gallery.html matplotlib gallery]<br>
 
|  [https://docs.scipy.org/doc/numpy-dev/user/quickstart.html numpy quickstart], [http://matplotlib.org/users/pyplot_tutorial.html pyplot tutorial], [http://matplotlib.org/gallery.html matplotlib gallery]<br>
 
|  [http://www.youtube.com/watch?v=A84rlgoVnMY видео]<br>
 
|  [http://www.youtube.com/watch?v=A84rlgoVnMY видео]<br>
Строка 112: Строка 113:
 
|  12<br>
 
|  12<br>
 
|  Библиотека <code>pandas</code><br>
 
|  Библиотека <code>pandas</code><br>
|  [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%2012.ipynb ipynb]<br>
+
|  [http://nbviewer.org/github/ischurov/pythonhse/blob/master/Lecture%2012.ipynb ipynb]<br>
 
|  Официальная документация <code>pandas</code>: [http://pandas.pydata.org/pandas-docs/stable/10min.html 10-минутное введение] (обзор возможностей), [http://pandas.pydata.org/pandas-docs/stable/tutorials.html#pandas-cookbook pandas cookbook], [http://pandas.pydata.org/pandas-docs/stable/indexing.html индексация и выбор данных] (подробно).<br>
 
|  Официальная документация <code>pandas</code>: [http://pandas.pydata.org/pandas-docs/stable/10min.html 10-минутное введение] (обзор возможностей), [http://pandas.pydata.org/pandas-docs/stable/tutorials.html#pandas-cookbook pandas cookbook], [http://pandas.pydata.org/pandas-docs/stable/indexing.html индексация и выбор данных] (подробно).<br>
 
|  [http://www.youtube.com/watch?v=ENKfnIEXyKw видео]<br>
 
|  [http://www.youtube.com/watch?v=ENKfnIEXyKw видео]<br>
Строка 119: Строка 120:
 
|  13<br>
 
|  13<br>
 
|  Ещё о <code>pandas</code>: мультииндексы, картинки и немного о погоде<br>
 
|  Ещё о <code>pandas</code>: мультииндексы, картинки и немного о погоде<br>
|  [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%2013.ipynb ipynb]<br>
+
|  [http://nbviewer.org/github/ischurov/pythonhse/blob/master/Lecture%2013.ipynb ipynb]<br>
 
|  Официальная документация <code>pandas</code>: [http://pandas.pydata.org/pandas-docs/stable/advanced.html Мультииндексы]<br>
 
|  Официальная документация <code>pandas</code>: [http://pandas.pydata.org/pandas-docs/stable/advanced.html Мультииндексы]<br>
 
| <br>
 
| <br>
Строка 153: Строка 154:
  
 
==Примечания==
 
==Примечания==
* ↑] Лекцию прочитал Юрий Георгиевич Кудряшов
+
* [↑] Лекцию прочитал Юрий Георгиевич Кудряшов
  
* ↑] PT использует термин «генераторы списков» вместо «списковые включения»
+
* [↑] PT использует термин «генераторы списков» вместо «списковые включения»

Текущая версия на 17:53, 22 июля 2024

Курс «Программирование на языке 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 в ближайшее время.)

Данные для анализа

Полезные ссылки

  • Twitter с последними новостями о курсе.
  • GitHub-репозитарий с конспектами лекций и другими материалами.

Примечания

  • [↑] Лекцию прочитал Юрий Георгиевич Кудряшов
  • [↑] PT использует термин «генераторы списков» вместо «списковые включения»