как запустить весь код jupiter notebook
Повышение продуктивности при работе с Jupyter Notebook за 5 минут
Для начала повторим основные горячие клавиши. Если вы их ещё не используете — начните обязательно. В долгосрочной перспективе время на изучение окупится многократно.
0. Основные горячие клавиши
1. Перезапуск блокнота
Для рестарта просто нажмите ESC + 00.
2. Прокрутка блокнота
Нажатие Space прокрутит блокнот вниз, а Shift + Space — вверх.
3. Отмена удаления ячейки
Для быстрой отмены удаления ячейки нажмите ESC + Z
4. Разделение ячеек
5. Вывод результатов всех операций
По умолчанию при выполнении ячейки выводится только результат последней операции.
Чтобы печаталось всё, скопируйте и выполните этот код в вашем блокноте:
Минус такого подхода в том, что иногда выводиться будет чрезмерно много информации. Чтобы этого избежать, добавьте точку с запятой в конце строки, вывод которой вам не нужен.
6. Пропустить выполнение ячейки
Рано или поздно появится ячейка, выполнение которой вы захотите пропустить. Вместо того чтобы закомментировать или удалить код, просто сделайте так:
7. Переход к ячейке, которая выполняется сейчас
Выполните этот код в вашем блокноте, чтобы иметь возможность быстро перемещаться к ячейке, которая выполняется в данный момент, по нажатию Alt + I
Руководство по Jupyter Notebook для начинающих
Jupyter Notebook — это мощный инструмент для разработки и представления проектов Data Science в интерактивном виде. Он объединяет код и вывод все в виде одного документа, содержащего текст, математические уравнения и визуализации.
Такой пошаговый подход обеспечивает быстрый, последовательный процесс разработки, поскольку вывод для каждого блока показывается сразу же. Именно поэтому инструмент стал настолько популярным в среде Data Science за последнее время. Большая часть Kaggle Kernels (работы участников конкурсов на платформе Kaggle) сегодня созданы с помощью Jupyter Notebook.
Этот материал предназначен для новичков, которые только знакомятся с Jupyter Notebook, и охватывает все этапы работы с ним: установку, азы использования и процесс создания интерактивного проекта Data Science.
Настройка Jupyter Notebook
Чтобы начать работать с Jupyter Notebook, библиотеку Jupyter необходимо установить для Python. Проще всего это сделать с помощью pip:
Теперь нужно разобраться с тем, как пользоваться библиотекой. С помощью команды cd в командной строке (в Linux и Mac) в первую очередь нужно переместиться в папку, в которой вы планируете работать. Затем запустите Jupyter с помощью следующей команды:
Это запустит сервер Jupyter, а браузер откроет новую вкладку со следующим URL: https://localhost:8888/tree. Она будет выглядеть приблизительно вот так:
Отлично. Сервер Jupyter работает. Теперь пришло время создать первый notebook и заполнять его кодом.
Основы Jupyter Notebook
Для создания notebook выберите «New» в верхнем меню, а потом «Python 3». Теперь страница в браузере будет выглядеть вот так:
Теперь напишем какой-нибудь код!
Вывод должен отобразиться прямо в notebook. Это и позволяет заниматься программированием в интерактивном формате, имея возможность отслеживать вывод каждого шага.
Если есть несколько ячеек, то между ними можно делиться переменными и импортами. Это позволяет проще разбивать весь код на связанные блоки, не создавая переменную каждый раз. Главное убедиться в запуске ячеек в правильном порядке, чтобы переменные не использовались до того, как были созданы.
Добавление описания к notebook
В Jupyter Notebook есть несколько инструментов, используемых для добавления описания. С их помощью можно не только оставлять комментарии, но также добавлять заголовки, списки и форматировать текст. Это делается с помощью Markdown.
Первым делом нужно поменять тип ячейки. Нажмите на выпадающее меню с текстом «Code» и выберите «Markdown». Это поменяет тип ячейки.
Интерактивная наука о данных
Соорудим простой пример проекта Data Science. Этот notebook и код взяты из реального проекта.
Также обратите внимание на то, как переменные из предыдущих ячеек, содержащие данные из CSV-файла, используются в последующих ячейках в том случае, если по отношению к первым была нажата кнопка «Run».
Это простейший способ создания интерактивного проекта Data Science!
На сервере Jupyter есть несколько меню, с помощью которых от проекта можно получить максимум. С их помощью можно взаимодействовать с notebook, читать документацию популярных библиотек Python и экспортировать проект для последующей демонстрации.
Редактировать (Edit): используется, чтобы вырезать, копировать и вставлять код. Здесь же можно поменять порядок ячеек, что понадобится для демонстрации проекта.
Вставить (Insert): для добавления ячеек перед или после выбранной.
Ячейка (Cell): отсюда можно запускать ячейки в определенном порядке или менять их тип.
Помощь (Help): в этом разделе можно получить доступ к важной документации. Здесь же упоминаются горячие клавиши для ускорения процесса работы. Наконец, тут можно найти ссылки на документацию для самых важных библиотек Python: Numpy, Scipy, Matplotlib и Pandas.
Как пользоваться Jupiter Notebook
Как запустить Jupiter Notebook
После того, как дистрибутив Anaconda установлен на ваш компьютер настало время запустить Jupiter Notebook. Для этого можно из кнопки «Пуск» в Windows запустить Anaconda Navigator. Находим Jupiter Notebook и нажимаем кнопку Launch.
Jupiter Notebook дистрибутив Anaconda
Также можно открыть приложение непосредственно из кнопки «Пуск» просто нажав на строку Jupiter Notebook. При запуске будет отображаться консоль запуска.
запуск приложения
После этого Jupiter Notebook откроется в браузере по умолчанию в новой вкладке. Подключение к интернету не требуется. Теперь с ним можно начинать работу.
Создание нового файла Jupiter Notebook
После запуска веб-приложения сразу открывается главная страница т.е. папка из которой запускается Jupiter Notebook. Затем идет перечень всех файлов и папок, которые есть в этой папке. Среда Jupiter Notebook состоит из веб-приложения и файлов, которые называются ноутбуки. В этих файлах можно работать с кодом программы, редактировать, запускать код, работать со вводом и выводом данных и т.д.
создание нового файла
Файлы имеют расширение .ipynb и представляют из себя текстовый файл. Для того, чтобы создать новый файл нужно зайти в правую верхнюю часть меню и нажать кнопку «New» и в открывшемся списке выбрать строку «Python 3». Нажав на, нее мы создаем новый файл.
В интерфейсе Jupiter Notebook также можно создавать разные файлы, в том числе текстовые и другие. Можно создавать и удалять папки и многое другое. Но нас интересует создание файлов для изучения Python третьей версии.
Обзор окна
Окно файла открывается в новой вкладке браузера и в верхней части окна будет меню с пунктами File, Edit, View и другими. Также есть панель инструментов и рабочая область, состоящая из ячеек.
Специально для работы с ячейками в меню есть специальный пункт с названием «Cell».
Пункт меню File
В этом пункте можно:
Пункт меню Edit
В этом пункте есть достаточно стандартный набор для работы с ячейками – это вырезать, скопировать ячейки, вставит ячейки над или под текущей ячейкой, удалить ячейки и т.д. Также присутствуют многие специфические инструменты для склеивания, разбивки ячеек и многое другое.
Пункт меню View
Этом пункт отвечает за то, что будет показано в окне:
Пункт меню Insert
В этом пункте можно добавить ячейку до или после выбранной.
Остальные пункты меню лучше рассматривать в процессе изучения языка Python.
Как использовать Jupyter (ipython-notebook) на 100%
Особенности Jupyter Notebook, о которых вы (может быть) не слышали
Jupyter Notebook – это крайне удобный инструмент для создания красивых аналитических отчетов, так как он позволяет хранить вместе код, изображения, комментарии, формулы и графики:
Ниже мы расскажем о некоторых фишках, которые делают Jupyter очень крутым. О них можно прочитать и в других местах, но если специально не задаваться этим вопросом, то никогда и не прочитаешь.
Jupyter поддерживает множество языков программирования и может быть легко запущен на любом сервере, необходим только доступ по ssh или http. К тому же это свободное ПО.
Основы
Список хоткеев вы найдете в Help > Keyboard Shortcuts (список периодически дополняется, так что не стесняйтесь заглядывать туда снова).
Отсюда можно получить представление о взаимодействии с блокнотом (notebook). Если вы будете постоянно работать c Jupyter, большинство комбинаций вы быстро выучите.
Экспорт блокнота
Простейший способ — сохранить блокнот в формате IPython Notebook (.ipynb), но так как их используют не все, есть и другие варианты:
Построение графиков
Есть несколько вариантов построения графиков:
Magic-команды
Магические команды (magics) превращают обычный python в магический python. Magic-команды — это ключ к могуществу IPython’а.
Можно управлять переменными среды для вашего блокнота без перезапуска Jupyter-сервера. Некоторые библиотеки (такие, как theano) используют переменные среды, чтобы контролировать поведение, и %env — самый удобный способ.
Выполнение shell-команд
В Notebook можно вызвать любую shell-команду. Это особенно удобно для управления виртуальной средой.
Подавление вывода последней строки
Иногда вывод не нужен, и в этом случае можно или использовать команду pass с новой строки, или поставить точку запятой в конце строки:
вызовет следующее всплывающее окно:
Используйте %run для выполнения кода на Python
Но эта команда может выполнять и другие блокноты из Jupyter! Иногда это очень полезно.
Обратите внимание, что %run — это не то же, что импорт python-модуля.
Загрузит код напрямую в ячейку. Можно выбрать файл локально или из сети.
Если раскомментировать и выполнить код ниже, содержание ячейки заменится на содержание файла.
%store — ленивая передача данных между блокнотами
%who для анализа переменных глобального пространства имен
Тайминг
Если вы хотите замерить время выполнения программы или найти узкое место в коде, на помощь придет IPython.
Профилирование: %prun, %lprun, %mprun
%lprun позволяет профилировать с точностью до строк кода, но, кажется, в последнем релизе Python он не работает, так что в этот раз обойдемся без магии:
Дебаг с помощью %debug
У Jupyter есть собственный интерфейс для ipdb, что позволяет зайти внутрь функции и посмотреть, что в ней происходит.
Это не PyCharm — потребуется время, чтобы освоить, но при необходимости дебага на сервере это может быть единственным вариантом (кроме pdb через терминал).
Немного более простой способ — команда %pdb, которая активирует дебаггер, когда выбрасывается исключение:
Запись формул в LateX
Маркдаун ячейки могут отрисовывать формулы LateX с помощью MathJax.
Маркдаун — важная часть блокнотов, так что не забывайте использовать его выразительные возможности!
Использование разных языков внутри одного блокнота
Если вы соскучились по другим языкам программирования, можете использовать их в Jupyter Notebook:
Анализ Big Data
Существует несколько решений, чтобы запрашивать/обрабатывать большие объемы данных:
Ваши коллеги могут экспериментировать с вашим кодом, ничего не устанавливая
Такие сервисы, как mybinder, предоставляют доступ к Jupiter Notebook со всеми установленными библиотеками, так что пользователь может с полчаса поиграться с вашим кодом, имея под рукой только браузер.
Вы также можете установить вашу собственную системы с помощью jupyterhub, что очень удобно, если вы проводите мини-курс или мастер-класс и вам некогда думать о машинах для студентов.
Написание функций на других языках
Иногда скорости NumPy бывает недостаточно, и мне необходимо написать немного быстрого кода. В принципе, можно собрать нужные функции в динамические библиотеки, а затем написать обертку на Python…
Но гораздо лучше, когда скучная часть работы сделана за нас, правда?
Ведь можно написать нужные функции на Cython или Fortran и использовать их напрямую из кода на Python.
Для начала нужно установить модули
Лично я предпочитаю Fortran, на котором, я считаю, удобно писать функции для обработки большого объема численных данных. Подробнее о его использовании можно почитать здесь.
Должен заметить, что есть и другие способы ускорить ваш код на Python. Примеры можно найти в моем блокноте.
Множественный курсор
С недавнего времени Jupyter поддерживает множественный курсор, такой, как в Sublime или IntelliJ!
Источник: swanintelligence.com/multi-cursor-in-jupyter.html
Расширения Jupyter-contrib
устанавливаются с помощью
Это целое семейство различных расширений, включая, например, jupyter spell-checker и code-formatter, которых по умолчанию в Jupyter нет.
RISE: презентации в Notebook
Расширение, написанное Damian Avila, позволяет демонстрировать блокноты как презентации. Пример такой презентации: bollwyvl.github.io/live_reveal/#/7
Это может пригодиться, если вы обучаете использованию какой-либо библиотеки.
Система вывода Jupyter
Блокноты отображаются в HTML, и вывод ячейки тоже может быть в формате HTML, так что вы можете выводить все, что душе угодно: видео, аудио, изображения.
В этом примере я просматриваю содержимое директории с картинками в моем репозитории и отображаю первые пять из них.
Я мог бы получить тот же список bash-командой,
потому что magic-команды и bash-вызовы возвращают переменные Python:
Повторное подключение к ядру
Давным давно, если вы запускали какой-нибудь долгий процесс и в какой-то момент подключение к серверу IPython прерывалось, вы полностью теряли возможность отслеживать процесс вычислений (если только вы не записывали эти данные в файл). Приходилось или прерывать работу ядра с риском потерять некоторые результаты, или ждать окончания процесса, не имея представления о том, что в данный момент происходит.
Теперь опция Reconnect to kernel позволяет заново подключиться к работающему ядру, не прерывая вычислений, и увидеть последний вывод (хотя какая-то часть вывода все же будет потеряна).
Пишите ваши посты в Notebook
такие, как этот. Используйте nbconvert, чтобы экспортировать в HTML.
Как оптимизировать работу в Jupyter Notebook
Как оптимизировать работу в Jupyter Notebook
Jupyter Notebook (ранее известный как IPython Notebook) — веб-оболочка для нескольких языков программирования: Julia, Python и R. Это одна из множества технологий, которые позволяют делать жизнь людей проще и лучше. Но установка пакета — только начало, есть множество вещей, которые можно доработать, чтобы сделать процесс разработки ещё удобнее.
В этой статье предполагается, что вы мало знакомы с Jupyter Notebook. Прежде чем мы перейдём к более хитрым трюкам, речь пойдёт о базовых вещах.
Если вы только открываете для себя эту тему, лучше сначала изучить вопрос с установкой и работой Anaconda.
Начало работы
После установки можно сразу приступить к работе. Для этого необходимо выполнить следующее:
Смена темы оформления
Чтобы настроить многими любимый тёмный режим, нужно зайти в терминал и установить Jupyterthemes:
Теперь можно установить тёмную тему:
Восстановить основную тему можно в любое время:
Найти Jupyterthemes можно в репозитории на GitHub.
Основные команды
Shift+Enter позволяет запустить текущую ячейку.
Esc переводит в командный режим. Он позволяет перемещаться по документу с помощью клавиш-стрелок.
13 сентября – 9 октября, Санкт-Петербург и онлайн, Беcплатно
В командном режиме можно использовать:
Shift+Tab — покажет документацию для объекта, который вы только что ввели в ячейку кода. Для переключения между несколькими режимами продолжайте нажимать это сочетание клавиш.
Esc+F — поможет найти и заменить информацию в коде (кроме выходных данных).
Esc+0 — переключает вывод ячейки.
Shift+J (или Shift+Down ) — выделяет ячейки ниже текущей. Shift+K (или Shift+Up ) выделяет ячейки выше текущей. Как только ячейки выбраны, их можно удалить/скопировать/вырезать/вставить/запустить как пакет. Это удобно, когда нужно переместить только часть документа.
Shift+M — позволяет объединить несколько ячеек.
Кроме того, в документе можно запускать bash-команды, если в начале поставить восклицательный знак:
Чтобы отключить отображение результата выражения в последней строчке ячейки, добавьте в конце последней строчки точку с запятой ( ; ).
Комментирование/раскомментирование блока кода
LaTex
Вы можете писать на LaTex в Markdown-ячейках, и они будет отображены в виде формулы.
Данная строка будет преобразована в следующую формулу:
Отображение данных из всех ячеек
Отображение по умолчанию:
Отображение всех ячеек:
Чтобы вернуться к настройкам по умолчанию, выполните следующее:
Изменение настроек следует запускать в отдельной ячейке, чтобы оно вступило в силу при следующем запуске ячейки.
Расширения
Поскольку Jupyter Notebook имеет открытый исходный код, для него было разработано множество расширений. Вы можете поработать с официальным списком расширений IPython или посмотреть другие популярные расширения.
Вы можете установить Nbextensions в любое время из командной строки.
Или с помощью Anaconda:
Как только они будут установлены, вы увидите вкладку Nbextensions.
В этом репозитории можно узнать больше о расширениях, об их включении в ваш документ и исключении из него.
Для работы просто нажмите «Nbextensions» в верхней части экрана, выберите интересующее вас расширение, а затем прокрутите вниз, чтобы найти нужную информацию.
Популярные расширения
Магия
Магия — это удобные команды, которые облегчают жизнь, когда вы хотите выполнить определённые задачи. Они часто выглядят как команды Unix, но все они реализованы на Python.
Есть два вида магии: строчная магия (применяется к одной строке) и магия ячейки (применяется ко всей ячейке). Строчная магия начинается с символа процента ( % ), а магия ячейки — с двух таких символов ( %% ).
Чтобы увидеть доступную магию, нужно запустить следующее:
Настройка среды разработки
Можно легко управлять переменными среды вашего документа с помощью %env без перезагрузок. Выполните эту команду без каких-либо переменных, она отобразит все ваши переменные среды.
Вставка кода
С помощью %load можно вставить код из внешнего скрипта.
Данная команда возьмёт файл basic_imports.py и загрузит его в ваш документ.
Экспорт содержимого ячейки
Это очень полезно, если вы используете один и тот же импорт в каждом документе или постоянно добавляете одну и ту же функцию. Теперь вы можете написать код один раз и использовать его везде.
Дальше можно его загрузить в любое время, написав:
Выполнение этой команды заменяет содержимое ячейки загруженным файлом.
Теперь вы можете снова запустить ячейку, чтобы импортировать все ваши модули.
Сохранение и повторное использование кода
Как и у большинства людей, у вас периодически могут быть одни и те же задания. Возможно, есть несколько уравнений, которые вы постоянно решаете, или несколько строк кода, которые вы создавали много раз. Jupyter позволяет сохранять фрагменты кода как исполняемые макросы. Поскольку макросы — это просто код, он может содержать переменные, которые должны быть определены перед выполнением.
Теперь, чтобы определить макрос, нужен код для использования. Можно сохранить практически всё, от строки до функции.
Чтобы загрузить макрос, достаточно выполнить следующее.
Чтобы выполнить макрос, можно просто запустить ячейку, которая содержит имя макроса.
Для наглядного примера измените переменную, использованную в макросе.
При запуске макроса захватывается измененное значение.
Это работает, потому что макросы выполняют сохраненный код в пространстве имён ячейки. Если name будет не определено, вы получите ошибку.
%store позволяет хранить макрос и использовать его во всех Jupyter Notebook.
Магия run
Магия pycat
Использование %pycat покажет содержимое скрипта, если вы не уверены, что в нём находится.
Автосохранение
%autosave определяет, как часто ваш документ будет автоматически сохранять контрольные точки в файл.
После данной команды автосохранение будет происходить каждые 60 секунд.
Отображение графиков
Эта команда отобразит графики Matplotlib прямо в выводе ячейки. Это означает, что диаграммы и графики Matplotlib можно включать прямо в свои документы. Имеет смысл запустить команду в начале вашего документа, прямо в первой ячейке.
Измерение времени
Основное различие между %timeit и %time состоит в том, что первая выполняет указанный код много раз и вычисляет среднее значение.
%%time даст вам информацию о единичном запуске кода в вашей ячейке.
Запуск кода из другого ядра
Можно запустить выполнение ячейки с использованием указанного языка. Существуют расширения для нескольких языков. Есть опции вроде:
Например, для рендеринга HTML в вашем документе вы должны выполнить следующее:
Вы также можете использовать LaTeX напрямую когда угодно:
Магия who
Если набрать данную команду, результат будет следующим.
Магия prun
%prun показывает, сколько времени ваша программа потратила на каждую функцию. Использование %prun statement_name даёт упорядоченную таблицу, показывающую, сколько раз каждая внутренняя функция была вызвана в блоке. А также время, которое потребовалось на каждый вызов, и суммарное время всех запусков функции.
Магия отладчика в Python
Jupyter имеет собственный интерфейс для отладчика Python. Это позволяет заглянуть внутрь функции и посмотреть, что там происходит. Включить эту магию можно, запустив %pdb в начале ячейки.
Графики высокого разрешения
Одна простая магическая строка IPython может предоставит вам на выводе график с двойным разрешением для экранов Retina. Стоит отметить, что на других экранах график может не отображаться.
Пропуск ячейки для выполнения
Просто добавьте %%script false в начале ячейки:
Оповещения
Оповещения могут пригодиться, когда вы запускаете код, требующий долгого выполнения. Вы можете настроить уведомление, которое будет отправлено, когда код выполнится.
На Linux и Mac
На Windows
Но это сработает, только если вы пользуетесь Homebrew.
Выводы
Изложенного в этой статье должно быть достаточно для успешного начала работы в Jupyter Notebook. Если вы знаете какие-либо советы и рекомендации, которые могут помочь другим новичкам, напишите об этом в комментариях ниже.
Если вы хотите подняться на уровень повыше, вас может заинтересовать другая статья по оптимизации Jupyter Notebook.
Хинт для программистов: если зарегистрируетесь на соревнования Huawei Cup, то бесплатно получите доступ к онлайн-школе для участников. Можно прокачаться по разным навыкам и выиграть призы в самом соревновании.
Перейти к регистрации