Объяснение визуализации данных (часть 4): Обзор основ Python

Автор: Дмитрий Иванов [Команда P9X]

~8 минут чтения

В моей серии статей о визуализации данных. Посмотрите следующее:

До этого момента в моей серии статей о визуализации данных я рассматривал основные элементы дизайна визуализации. Эти принципы необходимо понять, прежде чем приступать к разработке и созданию визуализаций, поскольку они гарантируют, что исходным данным будет уделено должное внимание. Если вы ещё этого не сделали, я настоятельно рекомендую вам прочитать мои предыдущие статьи (ссылки на них приведены выше).

На этом этапе вы готовы приступить к созданию собственных визуализаций. Я расскажу о различных способах сделать это в следующих статьях — и в духе науки о данных многие из этих методов потребуют программирования. Чтобы убедиться, что вы готовы к этому следующему шагу, эта статья будет состоять из краткого обзора основ 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 функции используются по двум основным причинам:

  1. Для манипулирования входными переменными и получения нужного нам результата (как и математические функции).
  2. Чтобы избежать повторения кода. Упаковывая код внутри функции, мы можем просто вызывать функцию всякий раз, когда нам нужно запустить этот код (вместо того, чтобы писать один и тот же код снова и снова).

Самый простой способ понять, как определять функции в 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. Эти инструменты призваны упростить процесс создания приложений для учёных, работающих с данными, которые плохо знакомы с программированием, и фундаментальных концепций, рассмотренных в этой статье, будет достаточно, чтобы вы начали их использовать.

Если этого недостаточно, чтобы убедить вас, я призываю вас нажать на одну из ссылок выше и начать изучать некоторые из этих инструментов визуализации самостоятельно. Как только вы начнёте видеть, что вы можете сделать с ними, вы не вернётесь назад.

Я вернусь в следующей статье, чтобы представить свой собственный учебник по созданию визуализаций. (Возможно, один или несколько из этих инструментов появятся.)

До встречи!

Ссылки