Открытые данные: различия между версиями

Материал из MathINFO
Перейти к навигации Перейти к поиску
(Новая страница: «{{Навигация|2014-15=Компьютерные инструменты обработки данных|2015-16=Компьютерные инструмент...»)
 
 
(не показана 1 промежуточная версия этого же участника)
Строка 1: Строка 1:
{{Навигация|2014-15=Компьютерные инструменты обработки данных|2015-16=Компьютерные инструменты обработки данных}}
 
 
Официальное название курса: «Статистика».
 
Официальное название курса: «Статистика».
  
 
Курс ведёт Илья Щуров.
 
Курс ведёт Илья Щуров.
  
== Инструменты ==
+
==Инструменты==
=== Python ===
+
===Python===
 
Мы используем Python версии 3 и оболочку Jupyter (ранее известную как IPython Notebook). Чтобы их установить, проще всего скачать пакет [http://continuum.io/downloads Anaconda]. Обратите внимание: вам нужна версия с Python 3.x.
 
Мы используем Python версии 3 и оболочку Jupyter (ранее известную как IPython Notebook). Чтобы их установить, проще всего скачать пакет [http://continuum.io/downloads Anaconda]. Обратите внимание: вам нужна версия с Python 3.x.
  
Строка 11: Строка 10:
  
 
* Под Windows: в меню «Пуск» пункт «Anaconda», в нём подпункт «IPython Notebook».
 
* Под Windows: в меню «Пуск» пункт «Anaconda», в нём подпункт «IPython Notebook».
 +
 
* Под Mac OS X: приложение Anaconda Launcher, в нём пункт ipython-notebook.
 
* Под Mac OS X: приложение Anaconda Launcher, в нём пункт ipython-notebook.
  
После запуска IPython Notebook у вас откроется окно браузера (и лучше пусть это будет не Internet Explorer, под ним IPython Notebook работает с некоторым скриптом, а иногда не работает) со списком файлов. В нём надо выбрать ''New → Python 3''. Откроется новая вкладка браузера, в ней будет запущен пустой notebook, состоящий из отдельных ячеек (cells). В ячейку с кодом можно вписать код и нажать Shift+Enter — он выполнится и вам покажут тут же результат.
+
После запуска IPython Notebook у вас откроется окно браузера (и лучше пусть это будет не Internet Explorer, под ним IPython Notebook работает с некоторым скриптом, а иногда не работает) со списком файлов. В нём надо выбрать New → Python 3. Откроется новая вкладка браузера, в ней будет запущен пустой notebook, состоящий из отдельных ячеек (cells). В ячейку с кодом можно вписать код и нажать Shift+Enter — он выполнится и вам покажут тут же результат.
 +
 
 +
Для установки дополнительных пакетов вам необходимо открыть консоль (это может быть Anaconda Prompt под Windows или стандартный «Терминал» под Mac OS или Linux) и набрать команду <code>conda install <название пакета></code> или <code>pip install <название пакета></code> (например, <code>conda install seaborn</code>).
 +
 
 +
Вы можете также запустить Jupyter онлайн [http://try.jupyter.org здесь], но данные там не сохранятся и возможности будут ограничены.
 +
 
 +
===Работа с ipynb-файлами===
 +
Мы выкладываем материалы курса в виде ipynb-файлов. По ссылкам ниже вы можете просмотреть эти файлы. Если вы хотите открыть этот файл у себя, то вам необходимо скачать его (нажав на иконку в правом верхнем углу страницы с лекцией) и положить в каталог, из которого Jupyter открывает ноутбуки: например, воспользовавшись кнопкой Upload в самом Jupyter (на экране со списком файлов). Также этот каталог можно найти по строчке <code>Serving notebooks from local directory: /home/user/IPython</code>, появляющейся в чёрненьком окошке при запуске Jupyter; здесь <code>/home/user/IPython</code> — искомый путь.
 +
 
 +
==Материалы==
 +
===Занятие 1: Первое знакомство. Списки===
 +
* Первое знакомство: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%201.ipynb конспект], [http://www.youtube.com/watch?v=5Y5tKPKhurA видео].
 +
**
 +
**  Дополнение: PT [http://pythontutor.ru/lessons/inout_and_arithmetic_operations/ арифметические операции], [http://pythontutor.ru/lessons/int_and_float/ целые и вещественные числа].
 +
 
 +
* Списки: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%202.ipynb конспект], [https://www.youtube.com/watch?v=kBu3g-ITjY4 видео].
 +
**
 +
**  Дополнение: PT [http://pythontutor.ru/lessons/lists/ списки].
 +
 
 +
===Занятие 2: Цикл <code>for</code>===
 +
* Цикл <code>for</code>: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%202.ipynb#Цикл-for конспект], [https://www.youtube.com/watch?v=kBu3g-ITjY4&feature=youtu.be&t=54m48s видео]
 +
**
 +
**  Дополнение: PT [http://pythontutor.ru/lessons/for_loop/ цикл for]
 +
 
 +
* Алгоритмы с циклами: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%203.ipynb#Алгоритмы-с-циклами конспект], [https://www.youtube.com/watch?v=uzgaCV8KZA0&feature=youtu.be&t=15m32s видео]
 +
 
 +
===Занятие 3: Ввод-вывод списков, проверка условий, цикл <code>while</code>===
 +
* Ввод-вывод списков, проверка условий, цикл <code>while</code>: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%203.ipynb конспект], [http://www.youtube.com/watch?v=uzgaCV8KZA0 видео]
 +
**
 +
**  Дополнение: PT  [http://pythontutor.ru/lessons/lists/#section_2 split и join], [http://pythontutor.ru/lessons/ifelse/ if], [http://pythontutor.ru/lessons/while/ while]
 +
 
 +
===Занятие 4: Коварство списков. Функции. Списковые включения===
 +
* Коварство списков: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%202.ipynb#Присвоение-и-копирование-списков конспект] [https://www.youtube.com/watch?v=kBu3g-ITjY4&feature=youtu.be&t=38m19s видео]
 +
 
 +
* Функции: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%204.ipynb конспект] [https://www.youtube.com/watch?v=NYrYSFyCg4w видео].
 +
**
 +
**  Дополнение: PT [http://pythontutor.ru/lessons/functions/ функции].
 +
 
 +
* Списковые включения (list comprehensions): [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%205.ipynb#Списковые-включения-(list-comprehensions) конспект] [https://www.youtube.com/watch?v=z8bu_b5BboI&feature=youtu.be&t=24m59s видео]
 +
**
 +
**  Дополнение: PT [http://pythontutor.ru/lessons/lists/#section_3 списковые включения][1]]
 +
 
 +
===Занятие 5: Сортировка и словари===
 +
* Сортировка: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%206.ipynb#Сортировка конспект], [https://www.youtube.com/watch?v=1w0NG-pfcsg&feature=youtu.be&t=9m17s видео]
 +
**
 +
**  Дополнение: [https://docs.python.org/3/howto/sorting.html Sorting howto] (англ.)
 +
 
 +
* Словари: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%205.ipynb конспект], [http://www.youtube.com/watch?v=z8bu_b5BboI видео]
 +
**
 +
**  Дополнение: PT [http://pythontutor.ru/lessons/dicts/ словари]
 +
 
 +
===Занятия 6-7: JSON и API===
 +
* JSON и API: [http://nbviewer.math-hse.info/github/ischurov/nesopendata2017/blob/master/API-JSON.ipynb конспекты] [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%2010.ipynb ещё один пример].
 +
 
 +
===Занятия 8-9: Парсинг веб-сайтов и XML===
 +
* Извлечение данных из веб-страниц с помощью BeautifulSoup и requests: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%208.ipynb конспект], [http://www.youtube.com/watch?v=3nPksaHTMGI видео]
 +
**
 +
**  Оригинальная документация (англ.): [http://docs.python-requests.org/en/latest/ requests] [http://www.crummy.com/software/BeautifulSoup/bs4/doc/ BeautifulSoup].
 +
 
 +
* Управление браузером в RoboBrowser и Selenium: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%2010.ipynb#Эмуляция-действий-с-браузером конспект], [https://www.youtube.com/watch?v=tC618tbA5Yk&feature=youtu.be&t=11m10s видео]
 +
**
 +
**  Оригинальная документация (англ.): [http://robobrowser.readthedocs.org/en/latest/ RoboBrowser], [http://selenium-python.readthedocs.org/ неофициальная документация] по Python-Selenium (её проще читать, чем официальную).
 +
 
 +
* Работа с открытыми API с помощью XML: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%209.ipynb конспект], [http://www.youtube.com/watch?v=5aelkl2HAow видео].
 +
 
 +
===Занятие 10: numpy и картинки===
 +
* [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%2011.ipynb конспект], [http://www.youtube.com/watch?v=A84rlgoVnMY видео]
 +
 
 +
* [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]
 +
 
 +
===Занятие 11-12: pandas, seaborn и немножко математики===
 +
* pandas и датафреймы: [http://nbviewer.jupyter.org/github/ischurov/nesopendata2017/blob/master/Lesson11_raw.ipynb сырой конспект занятия], [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%2012.ipynb подробный конспект похожего занятия], [http://www.youtube.com/watch?v=ENKfnIEXyKw видео]
 +
 
 +
* [http://math-info.hse.ru/a/2014-15/nes-stat/lectures/lecture14.html О регрессиях и символьной математике]
 +
 
 +
* Дополнительные материалы:
 +
**
 +
**  Официальная документация <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 индексация и выбор данных] (подробно), [http://seaborn.pydata.org seaborn].
 +
**
 +
**  [http://nbviewer.jupyter.org/github/ischurov/odebook/blob/master/mathandpython.ipynb О математике в Python]: обзор возможностей и примеры.
 +
 
 +
* Для установки пакета <code>seaborn</code> нужно в командной строке (<code>cmd.exe</code> под Windows, <code>Terminal</code> под Mac OS) набрать <code>pip install seaborn</code>, либо исползовать функцию установки пакетов в Anaconda Navigator.
 +
 
 +
===Занятие 13: pandas, мультииндексы и немного о погоде===
 +
* [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%2013.ipynb конспект]
 +
 
 +
* Официальная документация <code>pandas</code>: [http://pandas.pydata.org/pandas-docs/stable/advanced.html Мультииндексы]
 +
 
 +
===Занятие 14: источники данных в pandas===
 +
* [http://nbviewer.jupyter.org/github/ischurov/nesopendata2017/blob/master/Lesson14_raw.ipynb сырой конспект занятия], [http://math-info.hse.ru/a/2014-15/nes-stat/lectures/lecture14.html#Немного-о-работе-с-временными-рядами подробный конспект похожего занятия] (нужно заменить <code>pandas.io</code> на <code>pandas_datareader</code>, предварительно установив пакет <code>pandas_datareader</code>).
 +
 
 +
===Занятие 15: регулярные выражения===
 +
* [https://habrahabr.ru/post/115825/ manual по регулярным выражениям в Python], [http://regex101.com онлайновый отладчик регулярных выражений]
 +
 
 +
==Домашние задания==
 +
* [http://nbviewer.math-hse.info/url/python.math-hse.info/static/assignments_release/nes-stat-2017/ps01/ps01.ipynb ДЗ№1].
 +
 
 +
* [http://nbviewer.math-hse.info/url/python.math-hse.info/static/assignments_release/nes-stat-2017/ps02/ps02.ipynb ДЗ№2].
 +
 
 +
* [http://nbviewer.math-hse.info/url/python.math-hse.info/static/assignments_release/nes-stat-2017/ps03/ps03.ipynb ДЗ№3].
 +
 
 +
* [http://nbviewer.math-hse.info/url/python.math-hse.info/static/assignments_release/nes-stat-2017/ps04/ps04.ipynb ДЗ№4].
 +
 
 +
* [http://nbviewer.math-hse.info/url/python.math-hse.info/static/assignments_release/nes-stat-2017/ps05/ps05.ipynb ДЗ№5].
 +
 
 +
==Данные==
 +
* [http://math-info.hse.ru/f/2014-15/nes-stat/climate.html Погода в Москве] ([http://cliware.meteo.ru/inter/data.html источник])
 +
 
 +
==Дополнительные материалы==
 +
* [http://pythontutor.ru Pythontutor.ru]: хороший базовый учебник по Python, с интерактивными примерами и задачами. Там же есть [http://pythontutor.ru/visualizer/ визуализатор], позволяющий запускать произвольный код «построчно» и смотреть, что происходит. Очень полезный инструмент для отладки. См. также [http://pythontutor.com/ оригинальную версию] визуализатора (разработчик Philip Guo).
 +
 
 +
* [http://codingbat.com/python CodingBat]: разные упражнения с автоматической проверкой.
  
Для установки дополнительных пакетов вам необходимо открыть консоль (это может быть Anaconda Prompt под Windows или стандартный «Терминал» под Mac OS или Linux) и набрать команду <code>conda install <название пакета></code> (например, <code>conda install seaborn</code>).
+
* 2015-16:Программирование на языке Python для сбора и анализа данных]: расширенная версия этого курса.
  
Вы можете также запустить Jupyter онлайн [http://tmpnb.org здесь], но данные там не сохранятся и возможности будут ограничены.
+
* [https://docs.python.org/3/ Официальная документация] по Python 3.
  
==== Работа с ipynb-файлами ====
+
* [http://nbviewer.jupyter.org/github/ischurov/odebook/blob/master/mathandpython.ipynb Кратчайшее введение в Python для математики] шпаргалка по Python с математическим уклоном.
[[Файл:Nbviewer download icon.png|thumb|right|Чтобы скачать ipynb-файл, нужно кликнуть на иконку в красном кружке правой кнопкой и выбрать «сохранить файл как» или аналогичный пункт меню]]
 
Мы выкладываем материалы курса в виде ipynb-файлов. По ссылкам ниже вы можете просмотреть эти файлы. Если вы хотите открыть этот файл у себя, то вам необходимо скачать его (нажав на иконку в правом верхнем углу страницы с лекцией) и положить в каталог, из которого Jupyter открывает ноутбуки: например, воспользовавшись кнопкой ''Upload'' в самом Jupyter (на экране со списком файлов). Также этот каталог можно найти по строчке <code>Serving notebooks from local directory: /home/user/IPython</code>, появляющейся в чёрненьком окошке при запуске Jupyter; здесь <code>/home/user/IPython</code> искомый путь.
 
  
[[Файл:Jupyter-Upload.png|thumb|right|Чтобы загрузить файл в IPython Notebook, можно нажать на кнопку ''Upload'']]
+
* [https://www.youtube.com/watch?v=fhZXqTGsunw&feature=youtu.be&t=6h38m14s Серия докладов] про скраппинг данных (как скачать все сайты и не быть заблокированным по IP).
  
== Материалы ==
+
==Сноски==
=== Занятие 1: Первое знакомство. Списки ===
+
* PT использует термин «генераторы списков» вместо «списковые включения»
* Первое знакомство: [http://python.math-hse.info:8080/github/ischurov/pythonhse/blob/master/Lecture%201.ipynb конспект], [http://www.youtube.com/watch?v=5Y5tKPKhurA видео].
 
** Дополнение: {{PT}} [http://pythontutor.ru/lessons/inout_and_arithmetic_operations/ арифметические операции], [http://pythontutor.ru/lessons/int_and_float/ целые и вещественные числа].
 
* Списки: [http://python.math-hse.info:8080/github/ischurov/pythonhse/blob/master/Lecture%202.ipynb конспект], [https://www.youtube.com/watch?v=kBu3g-ITjY4 видео].
 
** Дополнение  {{PT}} [http://pythontutor.ru/lessons/lists/ списки].
 
* [http://python.math-hse.info:8080/url/python.math-hse.info/static/assignments_release/nes-stat-2017/ps01/ps01.ipynb ДЗ№1].
 

Текущая версия на 02:30, 8 февраля 2020

Официальное название курса: «Статистика».

Курс ведёт Илья Щуров.

Инструменты

Python

Мы используем 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 — он выполнится и вам покажут тут же результат.

Для установки дополнительных пакетов вам необходимо открыть консоль (это может быть Anaconda Prompt под Windows или стандартный «Терминал» под Mac OS или Linux) и набрать команду conda install <название пакета> или pip install <название пакета> (например, conda install seaborn).

Вы можете также запустить Jupyter онлайн здесь, но данные там не сохранятся и возможности будут ограничены.

Работа с ipynb-файлами

Мы выкладываем материалы курса в виде ipynb-файлов. По ссылкам ниже вы можете просмотреть эти файлы. Если вы хотите открыть этот файл у себя, то вам необходимо скачать его (нажав на иконку в правом верхнем углу страницы с лекцией) и положить в каталог, из которого Jupyter открывает ноутбуки: например, воспользовавшись кнопкой Upload в самом Jupyter (на экране со списком файлов). Также этот каталог можно найти по строчке Serving notebooks from local directory: /home/user/IPython, появляющейся в чёрненьком окошке при запуске Jupyter; здесь /home/user/IPython — искомый путь.

Материалы

Занятие 1: Первое знакомство. Списки

Занятие 2: Цикл for

Занятие 3: Ввод-вывод списков, проверка условий, цикл while

Занятие 4: Коварство списков. Функции. Списковые включения

Занятие 5: Сортировка и словари

Занятия 6-7: JSON и API

Занятия 8-9: Парсинг веб-сайтов и XML

Занятие 10: numpy и картинки

Занятие 11-12: pandas, seaborn и немножко математики

  • Для установки пакета seaborn нужно в командной строке (cmd.exe под Windows, Terminal под Mac OS) набрать pip install seaborn, либо исползовать функцию установки пакетов в Anaconda Navigator.

Занятие 13: pandas, мультииндексы и немного о погоде

Занятие 14: источники данных в pandas

Занятие 15: регулярные выражения

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

Данные

Дополнительные материалы

  • Pythontutor.ru: хороший базовый учебник по Python, с интерактивными примерами и задачами. Там же есть визуализатор, позволяющий запускать произвольный код «построчно» и смотреть, что происходит. Очень полезный инструмент для отладки. См. также оригинальную версию визуализатора (разработчик Philip Guo).
  • CodingBat: разные упражнения с автоматической проверкой.
  • 2015-16:Программирование на языке Python для сбора и анализа данных]: расширенная версия этого курса.
  • Серия докладов про скраппинг данных (как скачать все сайты и не быть заблокированным по IP).

Сноски

  • ↑ PT использует термин «генераторы списков» вместо «списковые включения»