Что такое ipython notebook
Руководство по 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.
Ipynb — кто это и с чем его есть?
Что такое этот ваш jupyter notebook?
Jupyter-ноутбук — это среда разработки, где сразу можно видеть результат выполнения кода и его отдельных фрагментов. Отличие от традиционной среды разработки в том, что код можно разбить на куски и выполнять их в произвольном порядке. Представьте, что вы можете написать кусочек кода на салфетке и сказать салфетке: «Выполнись».
Немного объясню по подробнее, jupyter notebook это своего рода python, только модифицированный. Представьте, что Вам нужно на основе результатов предикта построить график, или допустим у Вас есть какая-та модель, и на основе её надо построить график в matplotlib или seoborn. Если база данных большая, то что бы изменить какую-лиюо строчку, или слой в модели и заново все просчитать потребуется много времени. С ipynb же вы можете загрузить допустим датасет один раз, и дальше не делать это повторно при рестарте кода. Здорово же!)
Существует множество редакторов для формата ipynb, но зачастую подготовка к кодингу занимает много времени, я же предлагаю воспользоваться Visual Studio Code.
Кто не знает или не работал с Vs, установить ее можно по этой ссылке.
Дальше следует установить python и подключить его к vs.
Когда у нас есть vs с подключенным python мы можем приступить к скачиванию jupyter notebook. Сделать это можно перейдя к вкладке Extensions в панели слева или нажав Ctrl+Shift+X
Lightshot крутая штука)
Там будет поле поиска в которое нужно забить слово Jupyter. Из всех плагинов надо выбрать этот. И нажать Install. Собственно все) Теперь надо лишь дождаться уведомления о том, что плагин скачен.
Самое интересное. Начало кодинга
Я буду использовать датасет про уровень счастья в разных годах и странах, и уровень доллара.
По нажатию на зеленый треугольник мы загрузим эти библиотеки, тут и начинается магия jupyter. Мы импортируем библиотеки, и все мы больше не должны тратить на это время.
Но вся прелесть не только в этом, в итоге мы получаем файл с кодом и картинками в нем! Теперь если мы хотим выложить это на гитхаб у нас будут красивый код с картинками
2-я часть выйдет скоро, она будет про дополнительную библиотеку Ipython.
Что такое jupyter-ноутбук и зачем он нужен
Рассказываем о необычной среде разработки
Если вы хотите писать на Python или заниматься дата-сайенсом, вот классная штука для вас. Это уже, считай, стандарт для огромного числа питонистов, наслаждайтесь.
Что такое jupyter-ноутбук
Jupyter-ноутбук — это среда разработки, где сразу можно видеть результат выполнения кода и его отдельных фрагментов. Отличие от традиционной среды разработки в том, что код можно разбить на куски и выполнять их в произвольном порядке. Представьте, что вы можете написать кусочек кода на салфетке и сказать салфетке: «Выполнись».
В такой среде разработки можно, например, написать функцию и сразу проверить её работу, без запуска программы целиком. А ещё можно поменять порядок выполнения кода. Можно отдельно загрузить файл в память, отдельно проверить его содержимое, отдельно обработать содержимое.
А ещё в jupyter-ноутбуках есть вывод результата сразу после фрагмента кода. Например, можно прямо в середине кода увидеть построенный график, получить предварительные цифры или любую другую визуализацию.
Какие языки поддерживаются
Чаще всего, когда говорят о jupyter-ноутбуках, имеют в виду работу с Python. Но на самом деле можно работать и с другими:
Для этого используют специальные магические команды, которые так и называются — magic-команды. Они позволяют запускать код на других языках, а ещё существенно расширяют возможности обычного Python. Про эти команды мы поговорим в отдельной статье.
Ноутбук в облаке
Jupyter-ноутбуки запускаются на компьютере или в облаке.
Проще всего начать работать с ноутбуком в облаке, например Google Colab. Это значит, что вам достаточно запустить браузер и открыть нужную страницу. После этого облачная система выделит для вас ресурсы и позволит выполнять любой код.
Плюс подхода в том, что вам не нужно ничего устанавливать на компьютер — облако всё берёт на себя, а вы просто пишете и запускаете код.
Минус — программа может работать не так быстро, как на локальной машине. Ещё если вам нужны какие-то экзотические библиотеки, в облаке их может не оказаться.
Ноутбук на компьютере
Если вы сами хотите контролировать всё, что происходит с кодом и со средой разработки, тогда нужно установить jupyter-ноутбук себе на компьютер.
Так как основная среда в таком ноутбуке — это Python, то для работы у вас уже должен быть установлен Python, после сам ноутбук ставится так:
pip3 install jupyter
После установки ноутбук готов к запуску:
Эта команда откроет браузер, запустит локальный сервер для работы ноутбука и покажет нам готовую среду разработки:
Альтернативный способ — установить «Анаконду», и там будет всё: и Python, и Jupyter, и куча других нужных и полезных инструментов.
Как работать с ноутбуком
Самый простой способ — писать в нём код и сразу видеть, что получается после запуска. Например, возьмём код из статьи про рулетку и казино, вставим его в ноутбук и запустим. Ноутбук сразу же после кода покажет все данные и нарисует график:
Где применяются jupyter-ноутбуки
Основная область применения ноутбуков — машинное обучение, нейросети, визуализация данных и статистика.
Ещё такую среду часто используют для поэтапной разработки, когда нужно по шагам проверять работу разных фрагментов кода. Дело в том, что код в ноутбуках хранится в независимых ячейках и его можно запускать в любом порядке или поодиночке. Это позволяет быстро экспериментировать с алгоритмами и находить оптимальное решение.
Также jupyter-ноутбуки используются при обучении программированию на Python, чтобы писать код и сразу видеть результат его работы.
Что дальше
В следующий раз освоим ноутбуки на практике — сделаем свой ноутбук с красивыми графиками и блоками кода.
The IPython Notebook¶
Introduction¶
The notebook extends the console-based approach to interactive computing in a qualitatively new direction, providing a web-based application suitable for capturing the whole computation process: developing, documenting, and executing code, as well as communicating the results. The IPython notebook combines two components:
A web application: a browser-based tool for interactive authoring of documents which combine explanatory text, mathematics, computations and their rich media output.
Notebook documents: a representation of all content visible in the web application, including inputs and outputs of the computations, explanatory text, mathematics, images, and rich media representations of objects.
See the installation documentation for directions on how to install the notebook and its dependencies.
Main features of the web application¶
Notebook documents¶
Notebooks may be exported to a range of static formats, including HTML (for example, for blog posts), reStructuredText, LaTeX, PDF, and slide shows, via the new nbconvert command.
Starting the notebook server¶
You can start running a notebook server from the command line using the following command:
This will print some information about the notebook server in your console, and open a web browser to the URL of the web application (by default, http://127.0.0.1:8888 ).
The landing page of the IPython notebook web application, the dashboard, shows the notebooks currently available in the notebook directory (by default, the directory from which the notebook server was started).
When you are inside an open notebook, the File | Open. menu option will open the dashboard in a new browser tab, to allow you to open another notebook from the notebook directory or to create a new notebook.
Creating a new notebook document¶
A new notebook may be created at any time, either from the dashboard, or using the File | New menu option from within an active notebook. The new notebook is created within the same directory and will open in a new browser tab. It will also be reflected as a new entry in the notebook list on the dashboard.
Opening notebooks¶
Other clients may connect to the same underlying IPython kernel. The notebook server always prints to the terminal the full details of how to connect to each kernel, with messages such as the following:
You can then, for example, manually start a Qt console connected to the same kernel from the command line, by passing a portion of the ID:
Notebook user interface¶
When you create a new notebook document, you will be presented with the notebook name, a menu bar, a toolbar and an empty code cell.
menu bar: The menu bar presents different options that may be used to manipulate the way the notebook functions.
toolbar: The tool bar gives a quick way of performing the most-used operations within the notebook, by clicking on an icon.
code cell: the default type of cell, read on for an explanation of cells
Structure of a notebook document¶
For more information on the different things you can do in a notebook, see the collection of examples.
Code cells¶
When a code cell is executed, code that it contains is sent to the kernel associated with the notebook. The results that are returned from this computation are then displayed in the notebook as the cell’s output. The output is not limited to text, with many other possible forms of output are also possible, including matplotlib figures and HTML tables (as used, for example, in the pandas data analysis package). This is known as IPython’s rich display capability.
Markdown cells¶
You can document the computational process in a literate way, alternating descriptive text with code, using rich text. In IPython this is accomplished by marking up text with the Markdown language. The corresponding cells are called Markdown cells. The Markdown language provides a simple way to perform this text markup, that is, to specify which parts of the text should be emphasized (italics), bold, form lists, etc.
When a Markdown cell is executed, the Markdown code is converted into the corresponding formatted rich text. Markdown allows arbitrary HTML code for formatting.
Raw cells¶
Heading cells¶
You can provide a conceptual structure for your computational document as a whole using different levels of headings; there are 6 levels available, from level 1 (top level) down to level 6 (paragraph). These can be used later for constructing tables of contents, etc. As with Markdown cells, a heading cell is replaced by a rich text rendering of the heading when the cell is executed.
Basic workflow¶
The normal workflow in a notebook is, then, quite similar to a standard IPython session, with the difference that you can edit cells in-place multiple times until you obtain the desired results, rather than having to rerun separate scripts with the %run magic command.
Typically, you will work on a computational problem in pieces, organizing related ideas into cells and moving forward once previous parts work correctly. This is much more convenient for interactive exploration than breaking up a computation into scripts that must be executed together, as was previously necessary, especially if parts of them take a long time to run.
Keyboard shortcuts¶
All actions in the notebook can be performed with the mouse, but keyboard shortcuts are also available for the most common ones. The essential shortcuts to remember are the following:
Execute the current cell, show output (if any), and jump to the next cell below. If Shift-Enter is invoked on the last cell, a new code cell will also be created. Note that in the notebook, typing Enter on its own never forces execution, but rather just inserts a new line in the current cell. Shift-Enter is equivalent to clicking the Cell | Run menu item.
Execute the current cell as if it were in “terminal mode”, where any output is shown, but the cursor remains in the current cell. The cell’s entire contents are selected after execution, so you can just start typing and only the new input will be in the cell. This is convenient for doing quick experiments in place, or for querying things like filesystem content, without needing to create additional cells that you may not want to be saved in the notebook.
In command mode, you can easily navigate around the notebook using keyboard shortcuts. In edit mode, you can edit text in cells.
Plotting¶
One major feature of the notebook is the ability to display plots that are the output of running code cells. IPython is designed to work seamlessly with the matplotlib plotting library to provide this functionality.
If the %matplotlib magic is called without an argument, the output of a plotting command is displayed using the default matplotlib backend in a separate window. Alternatively, the backend can be explicitly requested using, for example:
With this backend, the output of plotting commands is displayed inline within the notebook, directly below the code cell that produced it. The resulting plots will then also be stored in the notebook document.
Configuring the IPython Notebook¶
The notebook server can be run with a variety of command line arguments. To see a list of available options enter:
Defaults for these options can also be set by creating a file named ipython_notebook_config.py in your IPython profile folder. The profile folder is a subfolder of your IPython directory; to find out where it is located, run:
To create a new set of default configuration files, with lots of information on available options, use:
Installing new kernels¶
Running the notebook makes the current python installation available as a kernel. Other python installations (different python versions, virtualenv or conda environments) can be installed as kernels by following these steps:
The last command installs a kernel spec file for the current python installation in
Kernels for other languages can be found in the IPython wiki. They usually come with instruction what to run to make the kernel available in the notebook.
Signing Notebooks¶
To prevent untrusted code from executing on users’ behalf when notebooks open, we have added a signature to the notebook, stored in metadata. The notebook server verifies this signature when a notebook is opened. If the signature stored in the notebook metadata does not match, javascript and HTML output will not be displayed on load, and must be regenerated by re-executing the cells.
Any notebook that you have executed yourself in its entirety will be considered trusted, and its HTML and javascript output will be displayed on load.
If you need to see HTML or Javascript output without re-executing, you can explicitly trust notebooks, such as those shared with you, or those that you have written yourself prior to IPython 2.0, at the command-line with:
This just generates a new signature stored in each notebook.
You can generate a new notebook signing key with:
Python. Урок 6. Работа с IPython и Jupyter Notebook
IPython представляет собой мощный инструмент для работы с языком Python. Базовые компоненты IPython – это интерактивная оболочка для с широким набором возможностей и ядро для Jupyter. Jupyter notebook является графической веб-оболочкой для IPython, которая расширяет идею консольного подхода к интерактивным вычислениям.
Основные отличительные особенности данной платформы – это комплексная интроспекция объектов, сохранение истории ввода на протяжении всех сеансов, кэширование выходных результатов, расширяемая система “магических” команд, логирование сессии, дополнительный командный синтаксис, подсветка кода, доступ к системной оболочке, стыковка с pdb отладчиком и Python профайлером.
IPython позволяет подключаться множеству клиентов к одному вычислительному ядру и, благодаря своей архитектуре, может работать в параллельном кластере.
В Jupyter notebook вы можете разрабатывать, документировать и выполнять приложения на языке Python, он состоит из двух компонентов: веб-приложение, запускаемое в браузере, и ноутбуки – файлы, в которых можно работать с исходным кодом программы, запускать его, вводить и выводить данные и т.п.
Веб приложение позволяет:
Ноутбуки – это файлы, в которых сохраняются исходный код, входные и выходные данные, полученные в рамках сессии. Фактически, он является записью вашей работы, но при этом позволяет заново выполнить код, присутствующий на нем. Ноутбуки можно экспортировать в форматы PDF, HTML.
Установка и запуск
Jupyter Notebook входит в состав Anaconda. Описание процесса установки можно найти в первом уроке. Для запуска Jupyter Notebook перейдите в папку Scripts (она находится внутри каталога, в котором установлена Anaconda) и в командной строке наберите:
В результате будет запущена оболочка в браузере.
Примеры работы
Будем следовать правилу: лучше один раз увидеть… Рассмотрим несколько примеров, выполнив которые, вы сразу поймете принцип работы с Jupyter notebook.
Запустите Jupyter notebook и создайте папку для наших примеров, для этого нажмите на New в правой части экрана и выберите в выпадающем списке Folder.
По умолчанию папке присваивается имя “Untitled folder”, переименуем ее в “notebooks”: поставьте галочку напротив имени папки и нажмите на кнопку “Rename”.
Зайдите в эту папку и создайте в ней ноутбук, воспользовавшись той же кнопкой New, только на этот раз нужно выбрать “Python [Root]”.
В результате будет создан ноутбук.
.
Код на языке Python или текст в нотации Markdown нужно вводить в ячейки:
Если это код Python, то на панели инструментов нужно выставить свойство “Code”.
Если это Markdown текст – выставить “Markdown”.
Для начал решим простую арифметическую задачу: выставите свойство “Code”, введите в ячейке “2 + 3” без кавычек и нажмите Ctrl+Enter или Shift+Enter, в первом случае введенный вами код будет выполнен интерпретатором Python, во втором – будет выполнен код и создана новая ячейка, которая расположится уровнем ниже так, как показано на рисунке.
Если у вас получилось это сделать, выполните еще несколько примеров.
Основные элементы интерфейса Jupyter notebook
У каждого ноутбука есть имя, оно отображается в верхней части экрана. Для изменения имени нажмите на его текущее имя и введите новое.
Из элементов интерфейса можно выделить, панель меню:
и рабочее поле с ячейками:
Ноутбук может находиться в одном из двух режимов – это режим правки (Edit mode) и командный режим (Command mode). Текущий режим отображается на панели меню в правой части, в режиме правки появляется изображение карандаша, отсутствие этой иконки значит, что ноутбук находится в командном режиме.
Для открытия справки по сочетаниям клавиш нажмите “Help->Keyboard Shortcuts”
В самой правой части панели меню находится индикатор загруженности ядра Python. Если ядро находится в режиме ожидания, то индикатор представляет собой окружность.
Если оно выполняет какую-то задачу, то изображение измениться на закрашенный круг.
Запуск и прерывание выполнения кода
Для добавления новой ячейки используйте Insert->Insert Cell Above и Insert->Insert Cell Below.
Для запуска ячейки используете команды из меню Cell, либо следующие сочетания клавиш:
Ctrl+Enter – выполнить содержимое ячейки.
Shift+Enter – выполнить содержимое ячейки и перейти на ячейку ниже.
Alt+Enter – выполнить содержимое ячейки и вставить новую ячейку ниже.
Как сделать ноутбук доступным для других людей?
Существует несколько способов поделиться своим ноутбуком с другими людьми, причем так, чтобы им было удобно с ним работать:
Вывод изображений в ноутбуке
Печать изображений может пригодиться в том случае, если вы используете библиотеку matplotlib для построения графиков. По умолчанию, графики не выводятся в рабочее поле ноутбука. Для того, чтобы графики отображались, необходимо ввести и выполнить следующую команду:
%matplotlib inline
Пример вывода графика представлен на рисунке ниже.
Магия
Важной частью функционала Jupyter Notebook является поддержка магии. Под магией в IPython понимаются дополнительные команды, выполняемые в рамках оболочки, которые облегчают процесс разработки и расширяют ваши возможности. Список доступных магических команд можно получить с помощью команды
%lsmagic
Для работы с переменными окружения используется команда %env.
Запуск Python кода из “.py” файлов, а также из других ноутбуков – файлов с расширением “.ipynb”, осуществляется с помощью команды %run.
Для измерения времени работы кода используйте %%time и %timeit.
%%time позволяет получить информацию о времени работы кода в рамках одной ячейки.
%timeit запускает переданный ей код 100000 раз (по умолчанию) и выводит информацию среднем значении трех наиболее быстрых прогонах.
Информацию по остальным магическим командам можете найти здесь:
Интересные примеры ноутбуков, в которых довольно полно раскрыты возможности Jupyter Notebook можно найти в ресурсах, перечисленных ниже.
P.S.
Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. На нашем сайте вы можете найти вводные уроки по этой теме. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.
Python. Урок 6. Работа с IPython и Jupyter Notebook : 2 комментария
” это интерактивная оболочка для с широким набором возможностей ”
после ДЛЯ пропало слово