Если вы изучаете Data Science (науку о данных), то довольно быстро встретитесь с Python. Почему? Потому что это один из самых используемых языков программирования для работы с данными. Он популярен по 3 основным причинам:
- Его легко изучать, с ним легко работать
- Python прекрасно работает с разными структурами данных
- Существуют мощные библиотеки языка для визуализации данных и статистики
В этом руководстве речь пойдет обо всем, что нужно знать, начиная с основ. Даже если вы никогда не работали с кодом, то точно оказались в нужном месте. Затрагиваться будет только та часть языка, которая имеет отношение к data science — ненужные и непрактичные нюансы пропустим. А в конце обязательно создадим что-то интересное, например, прогнозную аналитику.
Это практическое руководство!
Делать что-то, следуя инструкциям, всегда полезнее, чем просто читать. Если те части, в которых есть код, вы будете повторять самостоятельно, набирая его на своем ПК, то разберетесь и запомните все в 10 раз лучше. А в конце статьи обязательно будет одно-два упражнения для проверки!
Это значит, что для практики нужна некоторая подготовка. Установите:
- Python 3.6+
- Jupyter (с iPython)
- Библиотеки: pandas, numpy, scikit, matplotlib
Зачем учить Python для Data Science?
Когда настает время изучать код для работы с данными, стоит сосредоточиться на этих 4 языках:
- SQL
- Python
- R
- Bash
Конечно, хорошо бы изучить все четыре. Но если вы только начинаете, то стоит начать с одного или двух. Чаще всего рекомендуют выбирать Python и SQL. С их помощью удастся охватить 99% процесса работы с данными и аналитических проблем.
Но почему стоит изучать Python для Data Science?
- Это легко и весело.
- Есть много библиотек для простых аналитических проектов (например, сегментация, групповой анализ, исследовательская аналитика и так далее) и более сложных (например, построение моделей машинного обучения).
- Рынок труда требует профессионалов в сфере работы с данными, у которых хорошие знания Python. Это значит, что Python в резюме будет чрезвычайно конкурентоспособным пунктом.
Что такое Python? Он подходит только для Data Science?
Теоретическая часть будет короткой. Но вам нужно знать две вещи о языке, прежде чем начинать использовать его.
- Python — язык общего назначения и он используется не только для Data Science. Это значит, что его не нужно знать идеально, чтобы быть экспертом в сфере работы с данными. В то же время даже основ будет достаточно, чтобы понимать и другие языки, а это очень удобно для работы в IT.
- Python — высокоуровневый язык. Это значит, что в отношении процессорного времени он не самый эффективный. С другой же стороны, он был создан очень простым, «удобным для использования» и понятным. Так, пусть вы и проиграете в процессорном времени, но сможете отыграться в процессе разработки.
Python 2 vs Python 3 – какой выбрать для Data Science?
Многие слышали о противостоянии Python 2.x и Python 3.x. Суть его в том, что Python 3 существует с 2008 года, и 95% функций и библиотек для data science уже перекочевали из Python 2. Также Python 2 перестанет поддерживаться после 2020 года. Учить его — то же самое, что учить латынь — иногда полезно, но будущее все равно за Python 3.
По этой причине все эти руководства написаны на Python 3.
Примечание: тем не менее почти всегда используется код, который будет работать в обеих версиях.
Достаточно теории! Пора программировать!
Как открыть Jupyter Notebook
Когда Jupyter Notebook установлен, следуйте этим 4 шагам каждый раз, когда нужно будет его запустить:
Есть вы работаете локально, достаточно запустить программу Jupyter Notebook и перейти к пункту 4.
- Войти на сервер! Для этого нужно открыть терминал и ввести следующее в командную строку:
ssh [ваш_логин]@[ваш ip-адрес]
и пароль.
(Например:ssh dataguy@178.62.1.214
)
- Запустить Jupyter Notebeook на сервере с помощью команды:
jupyter notebook --browser any
- Получить доступ к Jupyter из браузера! Для этого нужно открыть Google Chrome (или любой другой) и ввести следующее в адресную строку:
[IP адрес удаленного сервера]:8888
(Например: 178.62.1.214:8888
)
На экране отобразится следующее:
Нужно будет ввести “password” (пароль) или “token” (токен). Поскольку пароля пока нет, сначала нужно использовать токен, который можно найти в окне терминала:
- Готово! Теперь нужно создать новый Jupyter Notebook! (Если он создан, осталось его открыть).
Важно! Во время работы в браузере окно терминал сдолжен работать в фоне. Если его закрыть, Jupyter в браузере тоже закроется.
Вот и все. Запомните порядок действий, потому что их придется повторять часто в этом руководстве по Python для Data Science.
Как использовать Jupyter Notebeook
Теперь разберем, как пользоваться Jupyter Notebook!
- Введите команду Python! Это может быть команда на несколько строк — если нажать Enter, ничего не запустится, а в этой же ячейке появится новая строка!
- Для запуска команды Python нужно нажать
SHIFT + ENTER
!
- Введите что-то и нажмите
TAB
. Если это возможно, Jupyter автоматически закончит выражение (для команд Python и указанных переменных). Если вариантов несколько, появится выпадающее меню.
Основы Python
Прекрасно! Вы знаете все, что может понадобиться с технической стороны. Дальше речь пойдет об основных концепциях, которые нужно изучить, прежде чем переходить к использованию Python в Data Science. Вот эти 6 концепций:
- Переменные и типы данных
- Структуры данных в Python
- Функции и методы
- Инструкция (оператор) if
- Циклы
- Основы синтаксиса Python
Чтобы упростить процесс изучения и практики, эти 6 тем разбиты на 6 статей. Вот первая.
Основы Python №1: переменные и типы данных
В Python значения присваиваются переменным. Почему? Потому что это улучшает код — делает его более гибким, понятным и позволяет легко использовать повторно. В то же время «концепция присваивания» является одной из самых сложных в программировании. Когда код ссылается на элемент, который в свою очередь ссылается на другой элемент… это непросто. Но как только привыкаете, это начинает нравиться!
Посмотрим, как это работает!
Предположим, что есть собака (“Freddie”), и нужно сохранить ее черты (name
, age
, is_vaccinated
, birth_year
и так далее) в переменных Python. В ячейке Jupyter Notebook нужно ввести следующее:
dog_name = 'Freddie'
age = 9
is_vaccinated = True
height = 1.1
birth_year = 2001
Примечание: это же можно сделать по одной переменной для каждой ячейки. Но такое решение все-в-одном проще и изящнее.
С этого момент если вводить названия переменных, то те будут возвращать соответствующие значения:
Как и в SQL в Python есть несколько типов данных.
Например, переменная dog_name
хранит строку: 'Freddie'
. В Python 3 строка — это последовательность символов в кодировке Unicode (например, цифры, буквы, знаки препинания и так далее), поэтому она может содержать цифры, знаки восклицания и почти все что угодно (например, ‘R2-D2’ — допустимая строка). В Python легко определить строку — она записывается в кавычках.
age
и birth_year
хранят целые числа (9
и 2001
) — это числовой тип данных Python. Другой тип данных — числа с плавающей точкой (float). В примере это height
со значением 1.1
.
Значение True
переменной is_vaccinated
— это логический тип (или булевый тип). В этом типе есть только два значения: True
и False
.
Резюме в таблице:
Имя переменной | Значение | Тип данных |
---|---|---|
dog_name | 'Freddie' | str (сокр. от ‘string’ — строка) |
age | 9 | int (сокр. от ‘integer’ — целое число) |
is_vaccinated | True | bool (сокр. от Boolean — булев тип) |
height | 1.1 | float (сокр. от floating — с плавающей запятой) |
birth_year | 2001 | int (сокр. от integer) |
Есть и другие типы данных, но для начала этих четырех будет достаточно.
Важно знать, что любую переменную Python можно перезаписать. Например, если запустить:
_dog_name = 'Eddie'
в Jupyter Notebook, тогда имя пса больше не будет ‘Freddie’…
Переменные Python — основные операторы
Вы знаете, что такое переменные. Пора поэкспериментировать с ними! Определим две переменные: a
и b
:
a = 3
b = 4
Что можно сделать с a
и b
? В первую очередь, есть набор арифметических операций! Ничего необычного, но вот список:
Оператор | Что делает? | Результат |
---|---|---|
a + b | Складывает a и b | 7 |
a - b | Вычитает b из a | -1 |
a * b | Умножает a на b | 12 |
a / b | Делит a на b | 0.75 |
b % a | Делит b на a и возвращает остаток | 1 |
a ** b | Возводит a в степень b | 81 |
Вот как это выглядит в Jupyter:
Примечание: попробуйте самостоятельно со своими переменными в Jupyter Notebook.
Можно использовать переменные с операторами сравнения. Результатом всегда будут логические True
или False
. a
и b
все еще 3
и 4
.
Оператор | Что делает? | Результат |
---|---|---|
a > b | Оценивает, больше ли a чем b | False |
a < b | Оценивает, меньше ли a чем b | True |
a == b | Оценивает, равны ли a и b | False |
В Jupyter Notebook:
В итоге, переменные сами могут быть логическими операторами. Определим c
и d
:
c = True
d = False
Оператор | Что делает? | Результат |
---|---|---|
c and d | True , если c и d — True | False |
c or d | True , если c или d — True | True |
not c | Противоположное c | False |
Это легко и, возможно, не так интересно, но все-таки: попробуйте ввести все это в Jupyter Notebook, запустите команды и начните соединять элементы — будет интереснее.
Время переходить к заданиям.
Проверьте себя №1
Вот несколько переменных:
a = 1
b = 2
c = 3
d = True
e = 'cool'
Какой тип данных вернется, и каким будет результат всей операции?
a == e or d and c > b
Примечание: сперва попробуйте ответить на этот вопрос без Python — а затем проверьте, правильно ли вы определили!
.
.
.
Ответ: это будет логический тип данных со значением True
.
Почему? Потому что:
- Значение
a == e
равноFalse
, поскольку 1 не равняется ‘cool’ - Значение
d
равноTrue
по определению - Значение
c > b
равноTrue
, потому что 3 больше 2
Таким образом, a == e or d and c > b
превращается в False or True and True
, что в итоге приводит к True
.
Проверьте себя №2
Используйте переменные из прошлого задания:
a = 1
b = 2
c = 3
d = True
e = 'cool'
Но в этот раз попробуйте определить результат слегка измененного выражения:
not a == e or d and not c > b
Чтобы правильно решить эту задачку, нужно знать порядок исполнения логических операторов:
- not
- and
- or
.
.
.
Ответ: True
.
Почему? Разберем.
Пользуясь логикой прошлого задания, можно прийти к выводу, что выражение равняется: not False or True and not True
.
Первым исполняется оператор not
. После того как все not
оценены, остается: True or True and False
.
Второй шаг — определить оператор and
. Переводим и получаем True or (True and False)
, что приводит к True or False
.
И финальный шаг — or
:
True or False
→ True
Выводы
Осознали ли вы, что программировали на Python 3? Не правда ли, что было легко и весело?
Хорошие новости в том, что в остальном Python настолько же прост. Сложность появляется от объединения простых вещей… Именно поэтому так важно знать основы!
В следующей части «Python для Data Science» вы узнаете о самых важных структурах данных в Python.