IPython Notebook

Posted by Vasiliy Zemlyanov on January 9, 2016

IPython Notebook - это интерактивная среда для программирования на языке python, которая позволяет объединить код, текст (включая Markdown), графики, математические формулы (MathJax) и скомбинировать все в одном отчете. Отчет можно конвертировать в html, LaTeX, pdf и другие форматы.

Удобный инструмент для ведения исследований, заметок, конспектов и тому подобного. Существуют статьи и учебные материалы распространяемые в качестве ноутбуков.

Установка

1 способ

Самым простым способом установки является использование python дистрибутива Anaconda, содержащего более 300 научных python пакетов, включая Ipython.

2 способ

Для установки на *nix системах

pip install ipython[all]

Для установки на windows необходимо последовательно установить:

  1. setuptools
  2. pyreadline
  3. IPython

Запуск

Для запуска ноутбука необходимо в терминале выбрать директорию, где будут храниться заметки и воспользоваться командой

ipython notebook

На 8888 порту будет запущен локальный сервер и в браузере откроется страница с ноутбуком.

Notebook start

Использование

Новый документ можно создать с помощью выпадающего меню.

New document

После чего будет создан новый, пустой документ. Переименовать документ можно нажав на строку Untitled, либо через меню File->Rename.

New document view

Документ сохраняется автоматически и правильно понимает сочетание Ctrl-S.

Код в Ipython документах организован в ячейки (cells). По нажатии Ctrl-Enter код в ячейке выполняется и результат вычислений отображается под ней.

Cell example

Ячейка может относиться к одному из нескольких типов. Выбрать тип ячейки можно используя пункт меню Cell->Cell Type.

Code cell

Позволяет писать и редактировать код с подсветкой синтаксиса и автоподстановкой (Tab). После добавления директивы

%matplotlib inline

в начале ячейки, появляется возможность строить графики прямо в документе.

%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np

img=mpimg.imread('city.jpg')
print "Image size: {0}".format(img.shape)

# Select green channel
img_green = img[:,:,1]
plt.imshow(img_green, cmap="Greys_r")
plt.show()

# Plot green channel row intensity
plt.plot(img_green[150, :])
plt.show()

Code cell

Markdown cell

Ячейки для документирования, позволяют использовать Markdown синтаксис и математические формулы MathJax.

### H3 title for the text ###

TODO List:

 1. Create note about IPython notebook.
 2. Add part about Markdown.
 3. Do not forget about MathJax.
 4. Add table in the end.
 
<h4>An Identity of Ramanujan</h4>

$$ \frac{1}{\Bigl(\sqrt{\phi \sqrt{5}}-\phi\Bigr) e^{\frac25 \pi}} =
1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}}
{1+\frac{e^{-8\pi}} {1+\ldots} } } } $$

#### Simple table

| Tables | True  | False |
| ------ |:-----:| -----:|
| True   | 78    | 14    |
| False  | 3     | 45    |

Markdown cell

Raw cell

Эти ячейки служат для хранения дополнительной информации, никак не исполняются и не модифицируются. Например в них можно хранить LaTeX для статьи.

Конвертация notebook-a в другие форматы

Конвертировать ноутбук можно командой

ipython nbconvert --to FORMAT notebook.ipynb

Допустимые форматы:

  • --to html - статическая html страница
  • --to latex - LaTeX
  • --to slides - Reveal.js html слайдшоу
  • --to markdown - Markdown, код будет экранирован
  • --to rst - формат для Sphinx docs
  • --to python - python скрипт.

Комбинации клавиш

  • Esc - командный режим (создание, удаление, перемещение ячеек)
  • Enter - режим редактирования (изменение содержимого ячейки)
  • Ctrl-Enter - выполнить код в ячейке
  • Shift-Enter - выполнить код в ячейке и перейти к следующей
  • Alt-Enter - выполнить код в ячейке и вставить ячейку снизу
  • Ctrl-M - прервать исполнение
  • A - вставить ячейку выше
  • B - вставить ячейку ниже
  • K - выбрать предыдущую ячейку
  • J - выбрать следующую ячейку
  • D,D - удалить ячейку
  • Y - в code cell
  • M - в markdown cell
  • R - в raw cell