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

Материалы по математике, 2018-19 учебный год
Перейти к: навигация, поиск
(Занятие 1)
 
(не показано 13 промежуточных версий этого же участника)
Строка 3: Строка 3:
 
== Инструменты ==
 
== Инструменты ==
 
=== Python ===
 
=== Python ===
Мы используем Python версии 3 и оболочку Jupyter (ранее известную как IPython Notebook). Чтобы их установить, проще всего скачать пакет [http://continuum.io/downloads Anaconda]. Обратите внимание: вам нужна версия с Python 3.x.
+
Мы используем Python версии 3 и оболочку Jupyter (ранее известную как IPython Notebook). Чтобы их установить, проще всего скачать пакет [https://www.anaconda.com/download/ Anaconda]. Обратите внимание: вам нужна версия с Python 3.x.
  
 
После установки Anaconda у вас появится:
 
После установки Anaconda у вас появится:
Строка 30: Строка 30:
  
 
=== Занятие 2 ===
 
=== Занятие 2 ===
 +
* «Сырой» [http://nbviewer.jupyter.org/gist/ischurov/6b27526b902eb9c1adeaa1453956b3b1 конспект занятия] (без пояснений).
 
* Цикл <code>for</code>: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%202.ipynb#Цикл-for конспект], [https://youtu.be/kBu3g-ITjY4?t=54m50s видео].
 
* Цикл <code>for</code>: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%202.ipynb#Цикл-for конспект], [https://youtu.be/kBu3g-ITjY4?t=54m50s видео].
 
** {{PT}}: [http://pythontutor.ru/lessons/for_loop/ цикл for].
 
** {{PT}}: [http://pythontutor.ru/lessons/for_loop/ цикл for].
* <code>.split</code> и <code>.join</code>, алгоритмы с циклами [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%203.ipynb#Лекция-№3:-Ввод-вывод-списков-и-проверка-условий конспект] (до раздела «Проверка условий»), [http://www.youtube.com/watch?v=uzgaCV8KZA0 видео]
+
* <code>.split</code> и <code>.join</code>, алгоритмы с циклами: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%203.ipynb#Лекция-№3:-Ввод-вывод-списков-и-проверка-условий конспект] (до раздела «Проверка условий»), [http://www.youtube.com/watch?v=uzgaCV8KZA0 видео]
 
* [http://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/hsepython2018/ps02/ps02.ipynb ДЗ№2]
 
* [http://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/hsepython2018/ps02/ps02.ipynb ДЗ№2]
 +
 +
=== Занятие 3 ===
 +
* «Сырой» [http://nbviewer.jupyter.org/gist/ischurov/80140b1303f79bb030655d350d6a34ed конспект занятия] (без пояснений)
 +
* Списковые включения (list comprehensions): [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%205.ipynb#Списковые-включения-(list-comprehensions) конспект] [https://youtu.be/z8bu_b5BboI?t=24m59s видео]
 +
** Дополнение: {{PT}} [http://pythontutor.ru/lessons/lists/#section_3 списковые включения]<ref>{{PT}} использует термин «генераторы списков» вместо «списковые включения»</ref>
 +
* Проверка условий, цикл <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]
 +
* Функции: [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/ функции].
 +
* [http://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/hsepython2018/ps03/ps03.ipynb ДЗ№3]
 +
 +
=== Занятие 4 ===
 +
* [http://nbviewer.jupyter.org/gist/506570e73c1be21a67aa0ea817a4d7b4 Сырой конспект занятия].
 +
* Словари: [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/ словари].
 +
* Сортировка: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%206.ipynb#Сортировка конспект], [https://youtu.be/1w0NG-pfcsg?t=9m17s видео].
 +
** Дополнение: [https://docs.python.org/3/howto/sorting.html Sorting howto] (англ.).
 +
* [http://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/hsepython2018/ps04/ps04.ipynb ДЗ№4].
 +
 +
=== Занятие 5 ===
 +
* [https://gist.github.com/ischurov/768f9c2be6fda7785bdac9d1fc33e272 Сырой конспект занятия]
 +
* Работа с файлами: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%207.ipynb#Файловый-ввод-вывод конспект], [https://youtu.be/KaWGNPgUOHo?t=2808 видео].
 +
** Дополнение: [https://docs.python.org/3/tutorial/inputoutput.html официальная документация] (англ.)
 +
* Библиотеки <code>numpy</code> и <code>matplotlib</code>: [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].
 +
* [http://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/hsepython2018/ps05/ps05.ipynb ДЗ№5]
 +
 +
=== Занятие 6 ===
 +
* [https://gist.github.com/ischurov/57b13c0e0d1e0675abd6fe82a31b8c4f Сырой конспект занятия]
 +
* <code>pandas</code>: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%2012.ipynb конспект], [http://www.youtube.com/watch?v=ENKfnIEXyKw видео]
 +
** Официальная документация <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 индексация и выбор данных] (подробно).
 +
** <code>sympy</code>: [https://docs.sympy.org/latest/index.html официальная документация] (можно начать с Tutorial).
 +
* [http://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/hsepython2018/ps06/ps06.ipynb ДЗ№6]
 +
 +
=== Занятие 7 ===
 +
* [https://gist.github.com/ischurov/9cb7016172e8275bf051c54e1d9ee56e Сырой конспект занятия]
 +
* pandas: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%2013.ipynb конспект про погоду] (на занятии мы немного иначе строили матрицу со средней температурой по годам и месяцам, используя для этого <code>.pivot_table()</code> вместо <code>.groupby()</code> с последующим <code>.unstack()</code>)
 +
* веб-скреппинг: [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].
 +
* [http://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/hsepython2018/ps07/ps07.ipynb ДЗ№7]
 +
 +
=== Занятие 8 ===
 +
* [https://gist.github.com/ischurov/aa17089719a931c1cd8de5590e176990 Сырой конспект занятия] (там есть чтение xls-файлов из zip-архивов с помощью <code>pandas</code> и <code>ziplib</code>).
 +
* Работа с API: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%209.ipynb XML] ([http://www.youtube.com/watch?v=5aelkl2HAow видео]) и [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%2010.ipynb JSON] ([http://www.youtube.com/watch?v=tC618tbA5Yk видео]).
 +
* [http://nbviewer.math-hse.info/github/ischurov/dj-prog/blob/master/Lesson%203.ipynb#Исключения Исключения] (<code>try/except</code>).
 +
* [http://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/hsepython2018/ps08/ps08.ipynb ДЗ№8]
 +
 +
== Примечания ==
 +
<references/>

Текущая версия на 01:40, 25 ноября 2018

Курс центра повышения квалификации для сотрудников НИУ ВШЭ. Ведёт Илья Щуров.

Инструменты

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).


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

Чтобы скачать ipynb-файл, нужно кликнуть на иконку в красном кружке правой кнопкой и выбрать «сохранить файл как» или аналогичный пункт меню

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

Чтобы загрузить файл в Jupyter Notebook, можно нажать на кнопку Upload

Материалы

Занятие 1

Занятие 2

Занятие 3

Занятие 4

Занятие 5

Занятие 6

Занятие 7

Занятие 8

Примечания

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