Науки о данных: различия между версиями
(не показано 8 промежуточных версий 2 участников) | |||
Строка 35: | Строка 35: | ||
===Занятие 3: Ввод-вывод списков, проверка условий, цикл <code>while</code>=== | ===Занятие 3: Ввод-вывод списков, проверка условий, цикл <code>while</code>=== | ||
− | * Ввод-вывод списков, проверка условий, цикл <code>while</code>: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%203.ipynb конспект | + | * Ввод-вывод списков, проверка условий, цикл <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] | ** Дополнение: PT [http://pythontutor.ru/lessons/lists/#section_2 split и join], [http://pythontutor.ru/lessons/ifelse/ if], [http://pythontutor.ru/lessons/while/ while] | ||
Строка 62: | Строка 62: | ||
===Занятие 7: Работа с файлами=== | ===Занятие 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 конспект]. | * [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 Официальная документация | + | ** Дополнение: [https://docs.python.org/3/tutorial/inputoutput.html Официальная документация](англ.) |
===Занятие 8: Numpy и картинки=== | ===Занятие 8: Numpy и картинки=== | ||
Строка 178: | Строка 178: | ||
==Проекты== | ==Проекты== | ||
===Весенний проект=== | ===Весенний проект=== | ||
− | * [[ | + | * [[/Весенний проект]] (срок сдачи: 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-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) |
==Данные== | ==Данные== |
Текущая версия на 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)