Науки о данных: различия между версиями
(Новая страница: «Курс ведёт Илья Щуров. ==Инструменты== ===Python=== Мы используем Python версии 3 и оболочку Jupyter (р...») |
|||
(не показано 10 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
Курс ведёт Илья Щуров. | Курс ведёт Илья Щуров. | ||
+ | |||
==Инструменты== | ==Инструменты== | ||
===Python=== | ===Python=== | ||
− | Мы используем Python версии 3 и оболочку Jupyter (ранее известную как IPython Notebook). Чтобы их установить, проще всего скачать пакет [http://anaconda.com/downloads Anaconda]. Обратите внимание: вам нужна версия с Python 3.x (в настоящее время — Python 3.7). | + | Мы используем Python версии 3 и оболочку Jupyter (ранее известную как IPython Notebook). Чтобы их установить, проще всего скачать пакет [http://anaconda.com/downloads Anaconda]]. Обратите внимание: вам нужна версия с Python 3.x (в настоящее время — Python 3.7). |
После установки Anaconda у вас появится: | После установки Anaconda у вас появится: | ||
Строка 13: | Строка 14: | ||
После запуска 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) и набрать команду conda install <название пакета> или pip install <название пакета> (например, conda install seaborn). | + | Для установки дополнительных пакетов вам необходимо открыть консоль (это может быть Anaconda Prompt под Windows или стандартный «Терминал» под Mac OS или Linux) и набрать команду <code>conda install <название пакета></code> или <code>pip install <название пакета></code> (например, <code>conda install seaborn</code>). |
− | Вы также можете использовать [https://colab.research.google.com Google Colaboratory] (но интерфейс там будет немножко отличаться от интерфейса Jupyter). | + | Вы также можете использовать [https://colab.research.google.com Google Colaboratory]] (но интерфейс там будет немножко отличаться от интерфейса Jupyter). |
===Работа с ipynb-файлами=== | ===Работа с ipynb-файлами=== | ||
− | Мы выкладываем материалы курса в виде ipynb-файлов. По ссылкам ниже вы можете просмотреть эти файлы. Если вы хотите открыть этот файл у себя, то вам необходимо скачать его (нажав на иконку в правом верхнем углу страницы с лекцией) и положить в каталог, из которого Jupyter открывает ноутбуки: например, воспользовавшись кнопкой Upload в самом Jupyter (на экране со списком файлов). Также этот каталог можно найти по строчке Serving notebooks from local directory: /home/user/IPython, появляющейся в чёрненьком окошке при запуске Jupyter; здесь /home/user/IPython — искомый путь. | + | Мы выкладываем материалы курса в виде ipynb-файлов. По ссылкам ниже вы можете просмотреть эти файлы. Если вы хотите открыть этот файл у себя, то вам необходимо скачать его (нажав на иконку в правом верхнем углу страницы с лекцией) и положить в каталог, из которого Jupyter открывает ноутбуки: например, воспользовавшись кнопкой Upload в самом Jupyter (на экране со списком файлов). Также этот каталог можно найти по строчке <code>Serving notebooks from local directory: /home/user/IPython</code>, появляющейся в чёрненьком окошке при запуске Jupyter; здесь <code>/home/user/IPython</code> — искомый путь. |
==Материалы== | ==Материалы== | ||
Строка 25: | Строка 26: | ||
** Дополнение: PT [http://pythontutor.ru/lessons/inout_and_arithmetic_operations/ арифметические операции], [http://pythontutor.ru/lessons/int_and_float/ целые и вещественные числа]. | ** Дополнение: PT [http://pythontutor.ru/lessons/inout_and_arithmetic_operations/ арифметические операции], [http://pythontutor.ru/lessons/int_and_float/ целые и вещественные числа]. | ||
− | ===Занятие 2: Списки и цикл for=== | + | ===Занятие 2: Списки и цикл <code>for</code>=== |
* Списки: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%202.ipynb конспект], [https://www.youtube.com/watch?v=kBu3g-ITjY4 видео]. | * Списки: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%202.ipynb конспект], [https://www.youtube.com/watch?v=kBu3g-ITjY4 видео]. | ||
+ | |||
+ | * <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 видео] | ||
** Дополнение: PT [http://pythontutor.ru/lessons/lists/ списки]. | ** Дополнение: PT [http://pythontutor.ru/lessons/lists/ списки]. | ||
* [http://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/nes-datascience2019/ps01/ps01.ipynb ДЗ№1] | * [http://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/nes-datascience2019/ps01/ps01.ipynb ДЗ№1] | ||
+ | |||
+ | ===Занятие 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] | ||
+ | |||
+ | * [https://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/nes-datascience2019/ps02/ps02.ipynb ДЗ№2] | ||
+ | |||
+ | ===Занятие 4: Функции=== | ||
+ | * Функции: [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/ функции]. | ||
+ | |||
+ | * [https://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/nes-datascience2019/ps03/ps03.ipynb ДЗ№3]. | ||
+ | |||
+ | ===Занятие 5: Списковые включения, <code>zip</code>, двумерные массивы и словари=== | ||
+ | * Списковые включения (list comprehensions): [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%205.ipynb#%D0%A1%D0%BF%D0%B8%D1%81%D0%BA%D0%BE%D0%B2%D1%8B%D0%B5-%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D1%8F-(list-comprehensions) конспект], [https://www.youtube.com/watch?v=z8bu_b5BboI&feature=youtu.be&t=24m59s видео]. | ||
+ | |||
+ | * Словари: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%205.ipynb конспект], [http://www.youtube.com/watch?v=z8bu_b5BboI видео]. | ||
+ | |||
+ | * Множества: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%207.ipynb#%D0%9C%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B0 конспект] | ||
+ | ** Дополнение: PT [http://pythontutor.ru/lessons/lists/#section_3 списковые включения], [http://pythontutor.ru/lessons/2d_arrays/ двумерные массивы], [http://pythontutor.ru/lessons/dicts/ словари]. | ||
+ | |||
+ | ===Занятие 6: Сортировка=== | ||
+ | * Сортировка: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%206.ipynb#%D0%A1%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0 конспект], [https://www.youtube.com/watch?v=1w0NG-pfcsg&feature=youtu.be&t=9m17s видео]. | ||
+ | ** Дополнение: [https://docs.python.org/3/howto/sorting.html Sorting howto] (англ.) | ||
+ | |||
+ | * [https://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/nes-datascience2019/ps04/ps04.ipynb ДЗ№4]. | ||
+ | |||
+ | ===Занятие 7: Работа с файлами=== | ||
+ | * [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%207.ipynb#%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D1%8B%D0%B9-%D0%B2%D0%B2%D0%BE%D0%B4-%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4 конспект]. | ||
+ | ** Дополнение: [https://docs.python.org/3/tutorial/inputoutput.html Официальная документация](англ.) | ||
+ | |||
+ | ===Занятие 8: 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]. | ||
+ | |||
+ | * [https://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/nes-datascience2019/ps05/ps05.ipynb ДЗ№5]. | ||
+ | |||
+ | ===Занятие 9: Введение в Pandas=== | ||
+ | * pandas и датафреймы: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%2012.ipynb конспект по базовым возможностям pandas], [http://www.youtube.com/watch?v=ENKfnIEXyKw видео] | ||
+ | ** Дополнительно: [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 индексация и выбор данных (подробно)] | ||
+ | |||
+ | * [https://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/nes-datascience2019/ps06/ps06.ipynb ДЗ№6] | ||
+ | |||
+ | ===Занятие 10: примеры использования pandas=== | ||
+ | * [http://nbviewer.math-hse.info/url/math-info.hse.ru/f/2018-19/nes-ds/lecture-pandas2.ipynb ipynb-файл с занятия] | ||
+ | |||
+ | ===Занятие 11: продвинутые возможности pandas=== | ||
+ | * [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%2013.ipynb Погода и мультииндексы] | ||
+ | |||
+ | * [http://nbviewer.math-hse.info/url/math-info.hse.ru/f/2018-19/nes-ds/lecture-pandas-pivot-join-weather.ipynb pivot-melt, merge-join] (сырой ipynb с занятия) | ||
+ | |||
+ | ===Занятие 12: ещё о pandas=== | ||
+ | * [https://nbviewer.jupyter.org/url/math-info.hse.ru/f/2018-19/nes-ds/pandas-datareader-pics.ipynb Чтение данных из World Bank, мультииндексы и картинки] | ||
+ | |||
+ | * [http://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/nes-datascience2019/ps07/ps07.ipynb ДЗ№7] | ||
+ | |||
+ | ===Занятия 13 и 14: веб-скреппинг=== | ||
+ | * Извлечение данных из веб-страниц с помощью 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]. | ||
+ | |||
+ | * [http://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/nes-datascience2019/ps08/ps08.ipynb ДЗ№8] | ||
+ | |||
+ | ===Занятие 15: продвинутый скреппинг: RoboBrowser и Selenium=== | ||
+ | * Извлечение данных с помощью RoboBrowser: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%2010.ipynb#Эмуляция-действий-с-браузером конспект], | ||
+ | ** Оригинальная документация (англ.): [http://robobrowser.readthedocs.org/en/latest/ RoboBrowser] | ||
+ | |||
+ | * Selenium: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%2010.ipynb#Selenium конспект], [http://selenium-python.readthedocs.org/ неофициальная документация] по Python-Selenium (её проще читать, чем официальную), | ||
+ | |||
+ | * [https://www.youtube.com/watch?v=tC618tbA5Yk&feature=youtu.be&t=11m10s видео]. | ||
+ | |||
+ | ===Занятие 16: REST API: XML/JSON=== | ||
+ | * Работа с открытыми API с помощью XML. [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%209.ipynb конспект] [http://www.youtube.com/watch?v=5aelkl2HAow видео]. | ||
+ | ** Документация по 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 на русском]. | ||
+ | |||
+ | * JSON и API. [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%2010.ipynb конспект], [http://www.youtube.com/watch?v=tC618tbA5Yk видео] | ||
+ | ** [https://ischurov.github.io/jupyter-json.html Интерактивное исследование JSON в Jupyter] | ||
+ | |||
+ | * [https://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/nes-datascience2019/ps09/ps09.ipynb ДЗ №9] | ||
+ | |||
+ | ===Занятие 17: немного о математике и визуализациях=== | ||
+ | * SymPy & Plotly [http://math-info.hse.ru/f/2018-19/nes-ds/sympy-and-plotly.html сырой конспект с занятия] ([http://math-info.hse.ru/f/2018-19/nes-ds/sympy-and-plotly.ipynb исходник]) | ||
+ | |||
+ | * [https://docs.sympy.org/latest/index.html SymPy] (символьные вычисления в Python): официальная документация | ||
+ | |||
+ | * [https://plot.ly/python/ plot.ly] (для Python) | ||
+ | |||
+ | ===Занятие 18: ещё немного о математике о визуализациях=== | ||
+ | * scipy (функции для решения математических задач) & plotly.express (быстрая визуализация данных в plot.ly) [https://nbviewer.jupyter.org/url/math-info.hse.ru/f/2018-19/nes-ds/optimize-and-plotly-express.ipynb сырой конспект с занятия] | ||
+ | |||
+ | * [https://scipy-lectures.org scipy-lectures]: тьюториалы по scipy. | ||
+ | |||
+ | * [https://nbviewer.jupyter.org/github/plotly/plotly_express/blob/master/walkthrough.ipynb plotly.express]: примеры использования. | ||
+ | |||
+ | ==Часть 2== | ||
+ | ===Занятие 19: введение в R=== | ||
+ | * [https://cloud.r-project.org скачать R] [https://www.rstudio.com/products/rstudio/download/ скачать RStudio] (Desktop, Open Source License), [https://rstudio.cloud rstudio.cloud] (можно ничего не скачивать). | ||
+ | |||
+ | * [https://swcarpentry.github.io/r-novice-inflammation/13-supp-data-structures/ структуры данных], [https://www.datamentor.io/r-programming/data-frame/ dataframe], [https://swcarpentry.github.io/r-novice-inflammation/15-supp-loops-in-depth/index.html циклы] [https://swcarpentry.github.io/r-novice-inflammation/02-func-R/index.html функции], [http://github.com/rstudio/cheatsheets/raw/master/base-r.pdf шпаргалка по базовому R]. | ||
+ | |||
+ | * Что было на занятии: [http://math-info.hse.ru/f/2018-19/nes-ds/rhistory.txt история команд], [http://math-info.hse.ru/f/2018-19/nes-ds/notebook.nb.html R Notebook] | ||
+ | |||
+ | ===Занятие 20: tidyverse=== | ||
+ | * Установка tidyverse: <code>install.packages("tidyverse")</code>. Возможно, вам придётся установить переменную окружения [https://code.adonline.id.au/changing-the-default-library-folder-path-in-r/ R_LIB_USER], чтобы она указывала на какой-нибудь каталог, в который вы имеете право записывать файлы (туда будут устанавливаться библиотеки). | ||
+ | |||
+ | * [https://cran.r-project.org/web/packages/dplyr/vignettes/dplyr.html введение в dplyr]. | ||
+ | |||
+ | * [https://r4ds.had.co.nz/tidy-data.html tidyr] (заблокировано в РФ): <code>gather</code> и <code>spread</code>. | ||
+ | |||
+ | * [https://datacarpentry.org/dc_zurich/R-ecology/04-dplyr группировка и агрегирование]. | ||
+ | |||
+ | ===Занятие 21: ggplot2=== | ||
+ | * Что было на занятиях: [http://math-info.hse.ru/f/2018-19/nes-ds/r-ggplot2.html R Notebook]. | ||
+ | |||
+ | * [https://r4ds.had.co.nz/data-visualisation.html введение в ggplot2] (заблокировано в РФ), [https://www.r-graph-gallery.com галерея визуализаций в R], [http://www.ggplot2-exts.org/gallery/ галерея дополнений к ggplot2]. | ||
+ | |||
+ | ===Занятие 22: регулярные выражения=== | ||
+ | * [https://habr.com/ru/post/349860/ Подробный текст про регулярки] | ||
+ | |||
+ | * [https://regex101.com regex101] — визуальный отладчик регулярных выражений. | ||
+ | |||
+ | ===Занятия 23-25: SQL=== | ||
+ | * конспекты занятий: [https://nbviewer.jupyter.org/url/math-info.hse.ru/f/2018-19/nes-ds/sql.ipynb раз], [https://nbviewer.jupyter.org/url/math-info.hse.ru/f/2018-19/nes-ds/sql2.ipynb два], [https://nbviewer.jupyter.org/url/math-info.hse.ru/f/2018-19/nes-ds/sql3.ipynb три]. | ||
+ | |||
+ | * [https://www.w3schools.com/sql/ SQL Tutorial] (W3Schools) — я в основном следовал этому тьюториалу. | ||
+ | |||
+ | * [https://blog.jooq.org/2016/03/17/10-easy-steps-to-a-complete-understanding-of-sql/ Полезная статья] для понимания SQL. | ||
+ | |||
+ | * Библиотека [https://docs.python.org/3/library/sqlite3.html sqlite3] в Python. | ||
+ | |||
+ | * [http://www.sqlitetutorial.net SQLite Tutorial] | ||
+ | |||
+ | * [https://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/nes-datascience2019/ps11/ps11.ipynb ДЗ№11] | ||
+ | |||
+ | ===Занятие 26: объектно-ориентированное программирование=== | ||
+ | * [https://nbviewer.jupyter.org/url/math-info.hse.ru/f/2018-19/nes-ds/oop.ipynb конспект занятия] | ||
+ | |||
+ | ===Занятие 27: SQLAlchemy=== | ||
+ | * [https://nbviewer.jupyter.org/url/math-info.hse.ru/f/2018-19/nes-ds/sqlalchemy.ipynb конспект занятия] | ||
+ | |||
+ | ===Занятие 28: элементы обработки естественного языка=== | ||
+ | * [https://nbviewer.jupyter.org/url/math-info.hse.ru/f/2018-19/nes-ds/nlp.ipynb конспект занятия] | ||
+ | |||
+ | ==Проекты== | ||
+ | ===Весенний проект=== | ||
+ | * [[/Весенний проект]] (срок сдачи: 15 апреля, 23:00) | ||
+ | |||
+ | Примеры хороших работ: | ||
+ | |||
+ | * [https://nbviewer.jupyter.org/url/math-info.hse.ru/f/2018-19/nes-ds/spring-projects/anna-schetkina.ipynb PhD Guide Project], автор Анна Щёткина. | ||
+ | * [https://nbviewer.jupyter.org/url/math-info.hse.ru/f/2018-19/nes-ds/spring-projects/anna-sevostyanova.ipynb IMDB Project], автор Анна Севостьянова. | ||
+ | * [https://nbviewer.jupyter.org/url/math-info.hse.ru/f/2018-19/nes-ds/spring-projects/daniil-bushuev/project%20v1.2.ipynb Проект Даниила Бушуева] (несколько разных тем). | ||
+ | * [http://math-info.hse.ru/f/2018-19/nes-ds/spring-projects/anastasia-sochenko.zip Проект-визуализация данных о космических объектах], автор Анастасия Соченко. | ||
+ | * [http://math-info.hse.ru/f/2018-19/nes-ds/spring-projects/igor-karpov.zip Статистика по всеросу], автор Игорь Карпов. | ||
+ | * [http://math-info.hse.ru/f/2018-19/nes-ds/spring-projects/andrej-pershkhajlo.zip Оценка качестве пешеходной инфраструктуры], автор Андрей Першхайло. | ||
+ | |||
+ | ===Летний проект=== | ||
+ | * [[/Летний проект]] (срок сдачи: 12 июня, 23:00) | ||
+ | |||
+ | ==Данные== | ||
+ | * [http://math-info.hse.ru/f/2018-19/spb-python/movie_metadata.csv imdb-5000] (источник: [https://www.kaggle.com/carolzhangdc/imdb-5000-movie-dataset https://www.kaggle.com/carolzhangdc/imdb-5000-movie-dataset]) | ||
+ | |||
+ | * [http://math-info.hse.ru/f/2018-19/nes-ds/gradebook.sqlite gradebook.sqlite] |
Текущая версия на 15:08, 4 мая 2020
Курс ведёт Илья Щуров.
Содержание
- 1 Инструменты
- 2 Материалы
- 2.1 Занятие 1: Первое знакомство
- 2.2 Занятие 2: Списки и цикл for
- 2.3 Занятие 3: Ввод-вывод списков, проверка условий, цикл while
- 2.4 Занятие 4: Функции
- 2.5 Занятие 5: Списковые включения, zip, двумерные массивы и словари
- 2.6 Занятие 6: Сортировка
- 2.7 Занятие 7: Работа с файлами
- 2.8 Занятие 8: Numpy и картинки
- 2.9 Занятие 9: Введение в Pandas
- 2.10 Занятие 10: примеры использования pandas
- 2.11 Занятие 11: продвинутые возможности pandas
- 2.12 Занятие 12: ещё о pandas
- 2.13 Занятия 13 и 14: веб-скреппинг
- 2.14 Занятие 15: продвинутый скреппинг: RoboBrowser и Selenium
- 2.15 Занятие 16: REST API: XML/JSON
- 2.16 Занятие 17: немного о математике и визуализациях
- 2.17 Занятие 18: ещё немного о математике о визуализациях
- 3 Часть 2
- 4 Проекты
- 5 Данные
Инструменты
Python
Мы используем Python версии 3 и оболочку Jupyter (ранее известную как IPython Notebook). Чтобы их установить, проще всего скачать пакет Anaconda]. Обратите внимание: вам нужна версия с Python 3.x (в настоящее время — Python 3.7).
После установки 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
).
Вы также можете использовать Google Colaboratory] (но интерфейс там будет немножко отличаться от интерфейса Jupyter).
Работа с ipynb-файлами
Мы выкладываем материалы курса в виде ipynb-файлов. По ссылкам ниже вы можете просмотреть эти файлы. Если вы хотите открыть этот файл у себя, то вам необходимо скачать его (нажав на иконку в правом верхнем углу страницы с лекцией) и положить в каталог, из которого Jupyter открывает ноутбуки: например, воспользовавшись кнопкой Upload в самом Jupyter (на экране со списком файлов). Также этот каталог можно найти по строчке Serving notebooks from local directory: /home/user/IPython
, появляющейся в чёрненьком окошке при запуске Jupyter; здесь /home/user/IPython
— искомый путь.
Материалы
Занятие 1: Первое знакомство
- Первое знакомство: конспект, видео.
- Дополнение: PT арифметические операции, целые и вещественные числа.
Занятие 2: Списки и цикл for
.split
и.join
, алгоритмы с циклами: конспект (до раздела «Проверка условий»), видео- Дополнение: PT списки.
Занятие 3: Ввод-вывод списков, проверка условий, цикл while
- Ввод-вывод списков, проверка условий, цикл
while
: конспект, видео- Дополнение: PT split и join, if, while
Занятие 4: Функции
- ДЗ№3.
Занятие 5: Списковые включения, zip
, двумерные массивы и словари
- Множества: конспект
- Дополнение: PT списковые включения, двумерные массивы, словари.
Занятие 6: Сортировка
- Сортировка: конспект, видео.
- Дополнение: Sorting howto (англ.)
- ДЗ№4.
Занятие 7: Работа с файлами
- конспект.
- Дополнение: Официальная документация(англ.)
Занятие 8: Numpy и картинки
- ДЗ№5.
Занятие 9: Введение в Pandas
- pandas и датафреймы: конспект по базовым возможностям pandas, видео
Занятие 10: примеры использования pandas
Занятие 11: продвинутые возможности pandas
- pivot-melt, merge-join (сырой ipynb с занятия)
Занятие 12: ещё о pandas
Занятия 13 и 14: веб-скреппинг
- Извлечение данных из веб-страниц с помощью BeautifulSoup и requests: конспект, видео
- Оригинальная документация (англ.): requests BeautifulSoup.
Занятие 15: продвинутый скреппинг: RoboBrowser и Selenium
- Извлечение данных с помощью RoboBrowser: конспект,
- Оригинальная документация (англ.): RoboBrowser
- Selenium: конспект, неофициальная документация по Python-Selenium (её проще читать, чем официальную),
Занятие 16: REST API: XML/JSON
- Работа с открытыми API с помощью XML. конспект видео.
- Документация по API MediaWiki (движка Википедии): основная на английском, на русском, автогенерированная на английском, на русском.
Занятие 17: немного о математике и визуализациях
- SymPy & Plotly сырой конспект с занятия (исходник)
- SymPy (символьные вычисления в Python): официальная документация
- plot.ly (для Python)
Занятие 18: ещё немного о математике о визуализациях
- scipy (функции для решения математических задач) & plotly.express (быстрая визуализация данных в plot.ly) сырой конспект с занятия
- scipy-lectures: тьюториалы по scipy.
- plotly.express: примеры использования.
Часть 2
Занятие 19: введение в R
- скачать R скачать RStudio (Desktop, Open Source License), rstudio.cloud (можно ничего не скачивать).
- Что было на занятии: история команд, R Notebook
Занятие 20: tidyverse
- Установка tidyverse:
install.packages("tidyverse")
. Возможно, вам придётся установить переменную окружения R_LIB_USER, чтобы она указывала на какой-нибудь каталог, в который вы имеете право записывать файлы (туда будут устанавливаться библиотеки).
- tidyr (заблокировано в РФ):
gather
иspread
.
Занятие 21: ggplot2
- Что было на занятиях: R Notebook.
- введение в ggplot2 (заблокировано в РФ), галерея визуализаций в R, галерея дополнений к ggplot2.
Занятие 22: регулярные выражения
- regex101 — визуальный отладчик регулярных выражений.
Занятия 23-25: SQL
- SQL Tutorial (W3Schools) — я в основном следовал этому тьюториалу.
- Полезная статья для понимания SQL.
- Библиотека sqlite3 в Python.
Занятие 26: объектно-ориентированное программирование
Занятие 27: SQLAlchemy
Занятие 28: элементы обработки естественного языка
Проекты
Весенний проект
- /Весенний проект (срок сдачи: 15 апреля, 23:00)
Примеры хороших работ:
- PhD Guide Project, автор Анна Щёткина.
- IMDB Project, автор Анна Севостьянова.
- Проект Даниила Бушуева (несколько разных тем).
- Проект-визуализация данных о космических объектах, автор Анастасия Соченко.
- Статистика по всеросу, автор Игорь Карпов.
- Оценка качестве пешеходной инфраструктуры, автор Андрей Першхайло.
Летний проект
- /Летний проект (срок сдачи: 12 июня, 23:00)