В моей серии статей о визуализации данных. Посмотрите следующее:
До этого момента в моей серии статей о визуализации данных я рассматривал основные элементы дизайна визуализации. Эти принципы необходимо понять, прежде чем приступать к разработке и созданию визуализаций, поскольку они гарантируют, что исходным данным будет уделено должное внимание. Если вы ещё этого не сделали, я настоятельно рекомендую вам прочитать мои предыдущие статьи (ссылки на них приведены выше).
На этом этапе вы готовы приступить к созданию собственных визуализаций. Я расскажу о различных способах сделать это в следующих статьях — и в духе науки о данных многие из этих методов потребуют программирования. Чтобы убедиться, что вы готовы к этому следующему шагу, эта статья будет состоять из краткого обзора основ Python, за которым последует обсуждение их актуальности для кодирования визуализаций данных.
Основы — выражения, переменные, функции
Выражения, переменные и функции — это основные строительные блоки всего кода Python — и, по сути, кода на любом языке. Давайте посмотрим, как они работают.
Выражения
Выражение — это оператор, который вычисляется в некоторое значение. Самое простое возможное выражение — это постоянное значение любого типа. Например, ниже приведены три простых выражения: первое — целое число, второе — строка, а третье — значение с плавающей запятой.
7
'7'
7.0
Более сложные выражения часто состоят из математических операций. Мы можем складывать, вычитать, умножать или делить различные числа:
3 + 7
820 - 300
7 * 53
121 / 11
6 + 13 - 3 * 4
По определению, эти выражения вычисляются в одно значение с помощью Python, следуя математическому порядку выполнения операций, описанному акронимом PEMDAS (Parentheses, Exponents, Multiplication, Division, Addition, Subtraction) [1]. Например, последнее выражение выше оценивается в число 7.0. (Видите, почему?)
Переменные
Выражения — это здорово, но сами по себе они не очень полезны. При программировании обычно нужно сохранить значение определённых выражений, чтобы использовать их в последующих частях программы. Переменная — это контейнер, который хранит значение выражения и позволяет получить к нему доступ позже. Вот те же самые выражения, что и в первом примере выше, но на этот раз со значением, сохранённым в различных переменных:
int_seven = 7
text_seven = '7'
float_seven = 7.0
У переменных в Python есть несколько важных свойств:
- Имя переменной (слово слева от знака равенства) должно быть одним словом, и оно не может начинаться с числа. Если вам нужно включить в имена переменных несколько слов, принято разделять их подчёркиваниями (как в примерах выше).
- Вам не нужно указывать тип данных при работе с переменными в Python, как вы могли бы делать это, если у вас есть опыт программирования на другом языке. Это связано с тем, что Python — это язык с динамической типизацией.
- Некоторые другие языки программирования различают объявление и присвоение переменной. В Python мы просто присваиваем переменные в той же строке, в которой мы их объявляем, поэтому в этом нет необходимости.
Когда переменные объявляются, Python всегда вычисляет выражение справа от знака равенства в одно значение перед тем, как присвоить его переменной (это связано с тем, как Python оценивает сложные выражения). Вот пример:
yet_another_seven = (2 * 2) + (9 / 3)
Переменной выше присваивается значение 7.0, а не составное выражение (2 * 2) + (9 / 3).
Функции
Функцию можно представить как своего рода машину. Она принимает что-то (или несколько вещей), запускает некоторый код, который преобразует объект(ы), которые вы передали, и выводит ровно одно значение. В Python функции используются по двум основным причинам:
- Для манипулирования входными переменными и получения нужного нам результата (как и математические функции).
- Чтобы избежать повторения кода. Упаковывая код внутри функции, мы можем просто вызывать функцию всякий раз, когда нам нужно запустить этот код (вместо того, чтобы писать один и тот же код снова и снова).
Самый простой способ понять, как определять функции в Python, — это посмотреть на пример. Ниже мы написали простую функцию, которая удваивает значение числа:
def double(num):
doubled_value = num * 2
return doubled_value
print(double(2))
print(double(4))
Вот несколько важных моментов, которые вы должны понять в этом примере:
- Ключевое слово
defсообщает Python, что вы хотите определить функцию. Слово сразу послеdef— это имя функции, поэтому функция выше называетсяdouble. - После имени идёт набор скобок, внутри которых вы помещаете параметры функции (модный термин, который означает входные данные функции). Важно: если вашей функции не нужны никакие параметры, вы всё равно должны включить скобки — просто не помещайте в них ничего.
- В конце оператора
defдолжна использоваться двоеточие, иначе Python выдаст ошибку. Вместе вся строка с операторомdefназывается сигнатурой функции. - Все строки после оператора
defсодержат код, составляющий функцию, с отступом на один уровень внутрь. Вместе они составляют тело функции. - Последняя строка функции выше — это оператор
return, который указывает вывод функции с помощью ключевого словаreturn. Операторreturnне обязательно должен быть последней строкой функции, но после его появления Python завершит работу функции, и больше строк кода выполняться не будет. Более сложные функции могут иметь несколько операторовreturn. - Вы вызываете функцию, написав её имя и поместив нужные входные данные в скобках. Если вы вызываете функцию без входных данных, вы всё равно должны включить скобки.
Python и визуализация данных
Теперь позвольте мне ответить на вопрос, который вы, возможно, задаёте себе: зачем вообще нужен этот обзор Python? В конце концов, есть много способов визуализировать данные, и они, конечно, не все ограничены знанием Python или даже программированием в целом.
Это правда, но, как учёному, работающему с данными, вам, вероятно, придётся программировать в какой-то момент — и в рамках программирования крайне вероятно, что язык, который вы используете, будет Python. Когда вам только что передали конвейер очистки и анализа данных от инженеров данных в вашей команде, полезно знать, как быстро и эффективно превратить его в набор действенных и презентабельных визуальных идей.
Python важно знать для визуализации данных по нескольким причинам:
- Это доступный язык. Если вы только переходите в науку о данных и визуализацию, программировать визуализации на Python будет намного проще, чем работать с низкоуровневыми инструментами, такими как D3 в JavaScript.
- В Python есть много разных и популярных библиотек, каждая из которых позволяет визуализировать данные с помощью кода, основанного непосредственно на основах Python, которые мы изучили выше. Примеры включают Matplotlib, Seaborn, Plotly и Vega-Altair (ранее известный как просто Altair). Я расскажу о некоторых из них, особенно об Altair, в следующих статьях.
- Кроме того, все вышеперечисленные библиотеки легко интегрируются с pandas, основополагающей библиотекой для науки о данных в Python. Данные в pandas можно напрямую включить в логику кода из этих библиотек для построения визуализаций; вам часто даже не нужно экспортировать или преобразовывать их, прежде чем вы сможете начать визуализировать.
- Основные принципы, рассмотренные в этой статье, могут показаться элементарными, но они имеют большое значение для визуализации данных:
- Правильное вычисление выражений и понимание тех, которые написаны другими, необходимо для того, чтобы вы могли визуализировать точное представление данных.
- Часто вам нужно будет сохранить определённые значения или наборы значений для последующего включения в визуализацию — для этого вам понадобятся переменные.
- Иногда вы даже можете сохранить целые визуализации в переменной для последующего использования или отображения.
- Более продвинутые библиотеки, такие как Plotly и Altair, позволяют вызывать встроенные (а иногда даже пользовательские) функции для настройки визуализаций.
- Базовые знания Python позволят вам интегрировать ваши визуализации в простые приложения, которыми можно будет поделиться с другими, используя такие инструменты, как Plotly Dash и Streamlit. Эти инструменты призваны упростить процесс создания приложений для учёных, работающих с данными, которые плохо знакомы с программированием, и фундаментальных концепций, рассмотренных в этой статье, будет достаточно, чтобы вы начали их использовать.
Если этого недостаточно, чтобы убедить вас, я призываю вас нажать на одну из ссылок выше и начать изучать некоторые из этих инструментов визуализации самостоятельно. Как только вы начнёте видеть, что вы можете сделать с ними, вы не вернётесь назад.
Я вернусь в следующей статье, чтобы представить свой собственный учебник по созданию визуализаций. (Возможно, один или несколько из этих инструментов появятся.)
До встречи!
