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

Естественно, мы продолжали разрабатывать функции и обучать наши модели с помощью блокнотов, так как наш исходный код уже находится там, и это удобная среда для нас. Блокноты отлично подходят для этапа EDA, для учебных пособий и отчетов. Существуют также инструменты, с помощью которых можно развертывать ноутбуки прямо в рабочей среде. Однако, когда нам нужно развернуть код с помощью скриптов Python, путь к производству будет длиннее из-за блокнотов. Кроме того, при использовании блокнотов мы не можем получить все преимущества разработки используя IDE, например PyCharm. Это может сэкономить много времени на разработку и избежать ошибок.
Так какой же путь выбрать?

Эта статья актуальна для:

  • Новые и опытные специалисты по данным
  • Специалисты по обработке и анализу данных, развертывающие модели с помощью скриптов Python.

Почему я решил прекратить разработку с помощью ноутбуков

  • Трудно отлаживать код на ноутбуках Jupyter
  • Git плохо работает с отслеживанием изменений кода в блокнотах
  • Развертывание в рабочей среде занимает много времени: вам нужно перенести блокнот в скрипты и модули, создать читаемые функции, добавить строки документации, тесты и многое другое.
  • Совместное использование с членом команды и обновление записной книжки, которая постоянно меняется, может быть утомительным процессом.
  • Блокноты, как правило, содержат много избыточного кода из-за необходимости отображать данные, просматривать графики, печатать заголовок данных, фигуры или столбцы.

Советы по разработке с использованием скриптов

Несколько лет назад я решил сделать смелый шаг и начать работу над новыми проектами данных с использованием скриптов Python с самого начала проекта. Таким образом, у меня не было проблем с переносом моего кода из блокнота Jupyter в скрипты Python. При использовании этой методологии моя IDE является профессиональной PyCharm, и большинство функций также можно найти в версии для сообщества. Мой код разделен на скрипты и модули, и проект синхронизируется с git с самого начала. Следующие советы снабдят вас необходимыми инструментами для успешного начала разработки с PyCharm IDE.

Должен знать сочетание клавиш

Чтобы вы могли легко и свободно разрабатывать наборы данных, вам нужно, чтобы ваши данные были загружены один раз, чтобы сэкономить время, и многократно выполнять каждую строку или фрагмент кода, с которым вы экспериментируете, в режиме реального времени. Такое поведение, необходимое для записных книжек, также можно найти в скриптах Python, использующих PyCharm IDE. Таким образом, первое и самое важное, что нужно знать о PyCharm, это то, что вы можете выполнять свой скрипт построчно или несколько строк, как вы это делаете в блокнотах, используя сочетание клавиш: ALT + SHIFT + E
(или OPTION + SHIFT + E для Mac).

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

Выполнение с помощью консоли Python

Консоль Python состоит из двух окон:

  • Левое окно — это текущий терминал вашего построчного выполнения и выходных данных. Вы можете выполнять временные команды в этой консоли, например просматривать имена столбцов определенного фрейма данных pandas или любую другую информацию, которую вы хотите проверить в отношении ваших данных и переменных.
  • Правое окно – это вкладка Переменные. Там вы можете увидеть все переменные вашего текущего сеанса. Самая полезная информация — размер и типы переменных. Кроме того, если вы хотите проверить фрейм данных или массив, щелкните параметр Просмотреть как фрейм данных справа от имени переменной, и вы увидите его содержимое в окне SciView. на вкладке Данные.

Совет для профессионалов — в нижней части вкладки Данные вы найдете командную строку с именем вашей переменной. Вы можете вводить разные команды, чтобы видеть разные представления данных в режиме реального времени, без необходимости назначать их другому имени переменной. Например, введите data.isnull().sum(), и вы получите следующие результаты:

Визуализация графиков

Вот где вам действительно нужна профессиональная версия.
Версия сообщества показывает графики, которые вы выполнили в скрипте с пакетом IPython, предлагая новое окно для каждого графика, что со временем имеет тенденцию зависать в вашем сеансе PyCharm. Профессиональная версия, с другой стороны, справляется с этим довольно хорошо, используя вкладку Plots в SciView.

Версии Git

Фиксация ваших изменений в git — это хорошая практика. В некоторых рабочих средах вам нужно делать это ежедневно. Чем больше вы совершаете коммитов, тем выше вероятность того, что вы сможете вернуться к предыдущим версиям кода. Однако при разработке с помощью блокнотов git не так хорошо отделяет фактические изменения кода от выходных изменений или метаданных ячейки кода. Эта проблема не возникает при разработке с помощью скриптов Python.

PyCharm имеет дружественный пользовательский интерфейс для git, как только вы загрузите плагин git. Изменения проекта отслеживаются, и вы можете увидеть их на вкладке Git в окне с именем Локальные изменения.

Совет для профессионалов.для некоторых версий PyCharm окно Локальные изменения не отображается, и вам нужно изменить настройки, чтобы увидеть его: Настройки -> Контроль версий -› Зафиксировать -› Использовать немодальный интерфейс фиксации.

Отладка

Отладка с помощью PyCharm намного быстрее и интуитивно понятна. Поместите точку останова в строку, которую вы хотите исследовать, и выполните свой код в режиме Debug. Затем вы можете перемещаться между функциями на панели Кадры, просматривать содержимое переменных на панели Переменные, выполнять следующую строку и даже выполнять новые команды на панели отладьте Консоль, чтобы определить ошибку.

Совет. Если вы не знаете, откуда возникла ошибка, выполните код в режиме Debug, и он должен остановиться и предложить вам строку, вызвавшую ошибку. ошибка. Если эта функция у вас не работает, вам следует настроить ее с помощью этого решения.

Компромисс

Специалистам по данным трудно перейти от разработки в блокнотах к разработке в сценариях с использованием IDE. Это требует практики и требует времени. Однако, если вы чувствуете, что ваши навыки кодирования должны быть улучшены, и хотите ускорить выпуск продукции, вам следует начать с разработки со сценариями.

Подводить итоги

Блокноты Python могут быть полезны на первых этапах вашего исследования, но при дальнейшем использовании в разработке они могут привести к накладным расходам на отладку, управление версиями git, совместное использование и развертывание, поскольку в конце вам придется перенести свой код в скрипты Python. Накладные расходы, которые устраняются при разработке с использованием скриптов в выделенной среде IDE с самого начала. Таким образом, специалисты по данным становятся ближе к работе, как их товарищи по команде инженеров машинного обучения и разработчики в целом.

дальнейшее чтение

  1. Git repo — Используемый код в этом посте и живых демонстрациях
  2. Добавьте виртуальную среду в PyCharm: https://www.jetbrains.com/help/pycharm/creating-virtual-environment.html#env-requirements
  3. Подключите удаленный интерпретатор к вашему локальному PyCharm: https://www.jetbrains.com/help/pycharm/configuring-remote-interpreters-via-ssh.html
    или с решением на основе Kubernetes: https:/ /medium.com/bigpanda-engineering/okteto-as-a-sagemaker-alternative-6b97ac82b83d