1. Jupyter Notebook
Краткий обзор
Jupyter Notebook представляет собой инструмент для проведения исследовательской работы в сфере науки о данных. Его особенностью являются интерактивные ячейки кода, запускать который можно изолированно друг от друга, мгновенно получая результат в виде расчетов, таблиц, графиков и т.п.
Ссылка на исходный код проекта на GitHub.
Установка
Инструкции по установке продукта можно прочитать по ссылке.
Пример установки дистрибутива доступен по ссылке.
Помимо указанных инструментов дистрибутив содержит обязательные пакеты для работы с данными: Scipy, numpy, pandas.
Запуск и создание файлов
Запуск Jupyter Notebook в терминале:
После запуска Jupyter Notebook перед пользователем в браузере автоматически открывается встроенный проводник, необходимый для создания рабочего файла в формате .ipynb
, который в профессиональной среде называют «ноутбукам» или «тетрадками».
Создание файла доступно в меню файлового менеджера в правом верхнем углу: New -> python3
.
После создания файла, в новой вкладке браузера становится доступно основное окно инструмента. Оно содержит элементы меню управления файлами и ячейками, а также ячейки для работы с кодом и текстом под меню.
Основная рабочая зона
Доступно два основных формата работы внутри ячеек: разметка текста и код.
В формате разметки текста синтаксис аналогичен языку Markdown. В этом формате можно описать заголовки и подзаголовки документа, комментарии, имя и контактные данные автора и т.п. В формате редактирования кода ячейка активна для исполнения в той программной среде, в которой запущен ноутбук. По умолчанию речь идет о языке программирования Python, окружение для которого создано при помощи системы управления средой Conda, однако после дополнительной настройки доступны и другие языки:
- Ruby;
- Perl;
- R;
- bash.
Доступно два режима работы с ячейками:
- редактирование содержимого, в котором осуществляются операции внутри ячейки;
- командный режим, в котором операции осуществляются над самой ячейкой.
Первый режим интуитивно понятен и активируется кликом левой кнопкой мыши внутри ячейки, после чего слева от ячейки появится цветовой индикатор зеленого цвета.
Второй режим активируется кликом левой кнопкой мыши слева от ячейки. В таком режиме ячейку можно перемещать выше/ниже других, изменять формат работы с ячейкой, добавлять новые ячейки и удалять существующие, объединять их и т.п. В командном режиме цветовой индикатор слева от ячейки – синего цвета.
Для запуска команды bash, перед кодом в ячейке необходимо добавить восклицательный знак:
В подавляющем большинстве случаев работа с ячейками Jupyter Notebook осуществляется с помощью сочетания горячих клавиш клавиатуры (латинская раскладка) в командном режиме:
- a (above) – вставить ячейку выше выделенной;
- b (below) – вставить ячейку ниже выделенной;
- x – удалить ячейку;
- m – перевести ячейку в формат разметки текста – Markdown;
- y – перевести ячейку в формат работы с кодом;
- shift+enter – запустить ячейку и выделить следующую за ней.
Кроме перечисленных комбинаций, в основном меню инструмента доступны все возможные сочетания клавиш, которые помогают ускорить исследовательскую работу: help -> keyboard shortcuts.
2. Jupyter Lab
Краткий обзор
Jupyter Lab – это интерфейс нового поколения для Jupyter Notebook. Основные отличия от предыдущего инструмента заметны именно при визуальном сравнении. Слева появляется панель, которая содержит четыре вкладки:
- Файловый менеджер.
- Запущенные терминалы и ядра.
- Содержание.
- Менеджер расширений.
Отдельного окна файлового менеджера у Jupyter Lab нет, он встроен в левую панель. Запущенные терминалы и ядра позволяют видеть перечень открытых вкладок и управлять ими.
С точки зрения функциональности, именно наличие менеджера расширений делает Jupyter Lab модульным и масштабируемым инструментом, настроенным на актуальные задачи по Data Science.
Во вкладке Settings
основного меню Jupyter Lab есть возможность выбирать цветовые темы оформления.
Установка
Для начала, необходима установка системы управления средой Conda, которую можно осуществить из репозитория Miniforge на GitHub.
Далее, установка Jupyter Lab осуществляется командой в терминале:
Возможна установка в составе дистрибутива языков программирования Anaconda, как было описано выше.
Запуск и создание файлов
Запуск Jupyter Lab в терминале:
Для создания нового файла необходимо кликнуть левой кнопкой мыши на кнопку New Launcher (+) под главным меню.
После этого откроется новая вкладка с перечнем возможных типов файлов:
После создания файлов все они отображаются в проводнике во вкладке слева:
Помимо самих ноутбуков в формате .ipynb
Jupyter Lab поддерживает ряд других форматов:
.csv
, что позволяет изучать наборы данных;.jpg/gif/png
, что позволяет просматривать изображения в проектах компьютерного зрения;.pdf
, что дает возможность изучать документацию;.md
, что помогает в описании и документировании проекта.
Основная рабочая зона
В отличие от Jupyter Notebook, перетаскивание ячеек в Jupyter Lab можно осуществлять в графическом режиме, удерживая левую кнопку мыши.
Ячейки с большим количеством текста/кода можно сворачивать кликом левой кнопкой мыши по цветовому индикатору. После сворачивания ячейки отображаются в виде троеточия. Разворачивание ячейки происходит аналогично.
Если ноутбук содержит много текста и кода, навигация по различным участкам документа становится неудобной. Для решения проблемы предусмотрена возможность параллельного просмотра еще одного ноутбука.
Для этого требуется кликнуть правой кнопкой мыши по заголовку вкладки и выбрать: New View for Notebook
. В остальном механика взаимодействия с основной рабочей зоной первых двух инструментов схожа.
3. Расширения Jupyter Lab
JupyterLab TensorBoard
Установка осуществляется через менеджер расширений левой панели:
JupyterLab Git
JupyterLab variableInspector
JupyterLab plotly
Ссылка на примеры диаграмм Plotly.
Расширений для JupyterLab существенно больше чем мы описали, поэтому каждый Data Scientist может провести ни один час в поисках подходящих для работы.
4. Azure Data Studio
Краткий обзор
Azure Data Studio имеет схожий подход к работе с кодом и разметкой текста в отдельно взятых изолированных ячейках, как и Jupyter Lab. Инструмент является бесплатным и кросс-платформенным. On-premise решение поддерживается следующими операционными системами: Windows, macOS и Linux.
Левая панель инструмента содержит шесть вкладок:
- Соединения.
- Поиск.
- Ноутбуки.
- Проводник.
- Управление версиями.
- Расширения.
Во вкладке Соединения
отражается перечень всех доступных (активных и неактивных) соединений с внешними ресурсами:
Эта вкладка позволяет создавать новые соединения, группировать их по папкам и фильтровать только активные соединения из общего списка.
Вкладка Поиск
позволяет произвести перебор всех включений искомого текста в разрезе рабочих файлов:
Вкладка Ноутбуки
содержит перечень рабочих ноутбуков, совмещенных с результатами текущего поиска из предыдущей вкладки:
Вкладка Проводник
содержит перечень файлов из подключенной к инструменту рабочей папки (директории):
Вкладка Управление версиями
позволяет реализовать инициализацию Git-репозитория и отправку текущей (зафиксированной) версии ноутбука в удаленный репозиторий на GitHub:
Azure Data Studio базируется на Visual Studio Code, что дает дополнительную возможность использовать расширения Visual Studio Code, но не все из них совместимы.
Установка
Инструкции по установке продукта можно прочитать по ссылке.
Основным способом доставки инструмента до пользователя является бинарная дистрибьюция.
Запуск и создание файлов
Запуск Azure Data Studio в графическом режиме через главное меню:
Menu -> Azure Data Studio
Создание рабочего ноутбука осуществляется через основное меню инструмента:
File -> New Notebook (Alt + N)
Для создания подключения к SQL-серверу:
File -> New Query
Основная рабочая зона
Azure Data Studio позволяет работать параллельно в нескольких вкладках, в каждой из которых запущено свое собственное ядро/задача. Например, в одной вкладке в ячейках выполняются скрипты SQL, в другой – код на Python, в третьей – запрос на подключение к SQL-серверу.
Наиболее часто используемые команды при работе с ячейками осуществляются с помощью сочетания горячих клавиш клавиатуры, полный перечень которых доступен в меню:
File -> Preferences -> Keyboard Shortcuts
В правом верхнем углу основной рабочей области находится иконка менеджера пакетов, кликнув по которой левой кнопкой мыши можно контролировать уже установленные пакеты, а также устанавливать новые.
5. Расширение Azure Data Studio
Managed Instance Dashboard
Панель мониторинга предоставляет сведения об экземпляре базы данных SQL Azure, связанные с его производительностью и работоспособностью. Список некоторых из доступных отчетов:
- Свойства экземпляра.
- Использование хранилища как для локального хранилища SSD, так и для удаленного хранилища Azure Premium.
- Использование ЦП/хранилища.
- Статус реплик базы данных.
Query History
Строка истории запроса содержит четыре части:
- Значок статуса: ✔️, если запрос выполнен успешно. Если возникли какие-либо ошибки, отображается значок ❌.
- Текст запроса: это текст запроса, который был выполнен.
- Информация о подключении: сервер и база данных, к которым был выполнен запрос.
- Отметка времени: дата и время выполнения запроса.
Redgate SQL Search
Machine Learning
Schema Visualization
.svg
.Для изучения полного перечня воспользуйтесь менеджером расширений в левой панели инструмента.
6. Apache Zeppelin
Краткий обзор
Apache Zeppelin – ноутбук c web-интерфейсом, доступный пользователю как на локальном компьютере через браузер, так и на удаленном сервере. Ноутбук позволяет управлять данными, строить интерактивную аналитику и совместно работать в проектах, используя SQL, Scala, Python, R и другие языки.
Установка
Инструкции по установке продукта можно прочитать по ссылке (англ.)
Установка потребует от пользователя базовых знаний администрирования UNIX-подобных операционных систем.
Запуск и создание файлов
Запуск Apache Zeppelin в терминале (в UNIX-подобной операционной системе):
На стартовой странице инструмента:
Notebook -> Create new note
Список ранее созданных ноутбуков также отражается на стартовой странице.
Основная рабочая зона
После запуска Apache Zeppelin перед пользователем в браузере открывается ноутбук.
Основная особенность ячеек Zeppelin заключается в том, что внутри одного ноутбука можно запускать ячейки на различных вычислительных ядрах и средах, для чего в первой строке ячейки прописывается специальный указатель, например:
- %sql – для запуска SQL-скрипта;
- %python – для запуска стандартного интерпретатора Python;
- %python.ipython – для запуска IPython интерпретатора (рекомендуется);
- %spark – для запуска Spark-сессии;
- %sh – для выполнения команд оболочки (Shell);
- и др.
Например, для вывода на экран текущей рабочей директории в ячейке необходимо выполнить код:
Для запуска IPython интерпретатора:
Другим значимым функциональным дополнением ноутбука является реализованная по умолчанию возможность визуализации данных. Для этого под ячейкой предусмотрена соответствующая пиктограмма графика.
7. Google Collab
Краткий обзор
Ключевое отличие от локального Jupyter Notebook – возможность запуска облачной сессии с графическим / тензорным ускорителем:
Меню -> Среда выполнения -> Сменить среду выполнения
В качестве GPU сервис предлагает 12GB NVIDIA Tesla K80, которая бесплатна для использования на ограниченное время – 12 часов за один запуск. Из одного аккаунта Google в случае использования GPU/TPU доступна только одна активная версия ноутбука. Платного тарифа для пользователей из России не предусмотрено.
Подробнее о лимитах инструмента можно прочитать по ссылке (англ.)
Левая панель инструмента содержит вкладки:
- Содержание.
- Найти и заменить.
- Фрагменты кода.
- Файлы.
Во вкладке Фрагменты кода
возможен поиск по шаблонам, что может ускорить работу с типовыми операциями, например такими, как подключение Google Drive к ноутбуку:
Во вкладке Файлы
реализована навигация по файловой системе виртуальной машины, в которой запущен ноутбук, а также присутствует возможность монтирования диска Google Drive для загрузки/сохранения данных:
Запуск и создание файлов
Создание ноутбука и запуск сервиса Google Colab осуществляется из сервиса Google Drive:
В любой папке диска необходимо выполнить следующее действие:
Создать -> Еще -> Google Colaboratory
Перечень ноутбуков доступен в папке, в которой они были созданы.
Также возможно создание нестандартных конфигураций ноутбуков.
Ноутбук с 35Gb RAM при использовании TPU, или 25Gb при использовании CPU\GPU доступен по ссылке.
Основная рабочая зона
В основном меню ноутбука, в разделе Инструменты
доступна раскладка горячих клавиш для работы с ячейками ноутбука. В Google Colab это сочетание отличается от сочетания в Jupyter Notebook.
Реализована возможность добавлять ячейки в графическом режиме:
Возможность изменения порядка ячеек в графическом режиме (перетаскивание) – отсутствует. Для этого в правом верхнем углу каждой ячейки предусмотрено меню:
В остальном, работа в Google Colab схожа с работой в локальном ноутбуке Jupyter.
8. PyCharm Community
Краткий обзор
Левая панель инструмента содержит вкладки:
- Project.
- Commit.
- Pull Requests.
Вкладка Progects
содержит структуру каталогов проекта, в т.ч. структуру сторонних библиотек, а также инструменты для работы с ними.
После фиксации изменений в проекте по нажатию пиктограммы в верхнем правом меню
открывается вкладка Comit
, где требуется ввести сообщение к осуществляемому комиту:
Сообщения к комитам целесообразно стандартизировать в формальной логике, например, с применением соглашения Conventional Commits.
При наличии предложений на изменение кода в репозитории GitHub со стороны участников проекта, все они отображаются во вкладке Pull Requests
.
Нижняя панель инструментов слева содержит вкладки:
- Git.
- TODO.
- Problems.
- Terminal.
- Python Packages.
- Python Console.
Наиболее востребованной вкладкой является Terminal
, в ней выполняются команды проекта, например:
Команда представляет собой запуск pipeline технологии DVC, о которой можно прочитать на сайте разработчика.
Ссылка на сайт разработчика технологии (англ.)
Установка
Основным способом распространения инструмента является бинарная дистрибьюция.
Скачать дистрибутив можно по ссылке.
Запуск и создание файлов
Существует два основных способа начала проекта.
- Создание нового проекта. В основном меню:
File -> New Project
. - Клонирование существующего проекта через систему контроля версий. В основном меню:
VCS -> Get from Version Control
.
Основная рабочая зона
В проектах Data Science PyCharm позволяет осуществлять рефакторинг кода, полученного в результате завершения исследовательской стадии проекта с применением ноутбуков.
Фрагменты кода оформляются в виде классов или функций на языке программирования Python.
Зеленый символ в правом верхнем углу рабочего окна свидетельствует о том, что код написан с соблюдением стандарта написания кода PEP8.
Изучить стандарт можно по ссылке.
При наличии замечаний к коду, знак меняется на следующий (цифра указывает на количество замечаний):
9. JetBrains DataSpell
Краткий обзор
Левая панель инструмента содержит две основные вкладки:
- Workspace.
- Structure (описывает структуру заголовков инструмента).
Вкладка Workspace
содержит структуру каталогов проекта, а также инструмент для подключения сервера Jupyter Notebook:
Доступны подключения к локальному серверу, либо к удаленному по URL.
Правая панель содержит важный инструмент, который называется DataExplorer
. Он позволяет подключать различные системы управления базами данных (SQL/NoSQL), вроде Azure SQL Database, Apache Hive и др.
Нижняя панель содержит вкладки для работы с Git и консолью, аналогично PyCharm.
Установка
Дистрибутив DataSpell доступен по ссылке.
Запуск и создание файлов
После запуска инструмента из основного меню в диалоговом окне доступен выбор среды. По умолчанию указана Conda.
Основная рабочая зона
Двойное нажатие левой кнопкой мыши на файле ноутбука в левой панели Workspace
открывает его непосредственно в основном окне редактора DataSpell.
В таком режиме работа с ячейками ноутбука происходит привычным образом – редактирование кода внутри ячейки и операции над самой ячейкой.
В режиме отладки, после установки точки останова (break point), под основной рабочей областью ноутбука появляется таблица с историей исполнения в ячейках, а также выводом всех переменных, которые содержатся в пространстве имен ноутбука.
Двойное нажатие левой кнопкой мыши на файле .csv
в левой панели Workspace
открывает его непосредственно в основном окне редактора, облегчая визуальное исследование исходных данных.
10. GitHub для Data Science
Проекты в области Data Science предполагают работу с ноутбуками в формате .ipynb
на исследовательской стадии проекта. Этот формат файлов хотя и поддерживается GitHub (их можно открывать непосредственно из web-интерфейса репозитория), но попытки просмотра содержимого в половине случаев завершаются ошибкой, страницу просмотра приходится обновлять и пробовать открыть файл снова.
Для решения этой проблемы частой практикой является просмотр ноутбука в Google Colab:
Пример кода для встраивания ссылки на просмотр ноутбука в файл README.md
в корневой директории репозитория:
Файлы .ipynb
по сути являются структурированным текстом в формате JSON и отслеживать их изменения в процессе версионирования неудобно:
Рефакторинг кода и структурирование его в «питоновские» файлы с расширением .py
и соблюдением стандарта PEP8 упрощают работу:
Чтобы обойти архитектуру Git, Git LFS создает файл-указатель, который действует как ссылка на хранящийся в другом месте файл. GitHub управляет этим файлом указателя в репозитории. Когда вы клонируете репозиторий, GitHub использует указатель, чтобы найти сам файл.
Подробнее о работе с большими файлами можно прочитать в документации GitHub (англ.)
Работу с большими файлами также поддерживает технология DVC (Data Version Control).
Комментарии