はしくれエンジニアもどきのメモ

情報系技術・哲学・デザインなどの勉強メモ・備忘録です。

Jupyter Notebookの拡張機能を使ってみる

Jupyter Notebookの拡張機能を使ってみる

Jupyter Notebook をさらに拡張してくれるIPython-notebook-extensions を使ってみたのでメモ。

環境

  • Windows 10

    • conda 4.0.5

      • Jupyter 4.1.0

IPython-notebook-extensions のインストール

今回は、「IPython-notebook-extensions」をインストールする。

github.com

  1. 管理者でコマンドプロンプトを実行して、 文字コードが変わっている場合はchcp を戻しておく。

    
    chcp 932
    
  2. インストール方法は書いてある通り、pip でできる。 anaconda でインストールしたjupyter にも問題なかった。

    
      pip install https://github.com/ipython-contrib/IPython-notebook-extensions/archive/master.zip --user
      

インストールができたら Jupyter notebook を立ち上げて、アドレスに /nbextensions/ をつけて http://localhost:8888/nbextensionsにアクセス。 これで、拡張機能のconfig画面に飛べる。

config画面(/nbextenions/)

有効にしておきたい機能

NbExtensions menu item

Editメニューに、config画面に飛ぶitem を追加する。

Edit メニューに追加される

AutoSaveTime

Notebookファイル(.ipynb)が、一定時間間隔で自動保存される。 時間間隔も設定できる。

none - 60[min]まで設定できる

Drag and Drop

画像をドラッグ&ドロップで追加できる。 追加すると、画像ファイルが.ipynbファイルと同じ階層にコピーされる。

注意点としては、 markdown cell のimgタグで追加され、html変換では問題ないが、 texファイルに変換するとimgタグは無視される。 markdown記法の![alt](url)にしておけば、 html, texファイルに変換しても問題ない。

tutorial動画もある。

youtu.be

tutorial動画では、画像をbase64で符号化して埋め込みも行っているようだが、今のversion だとできないぽい。

Table of Contents (2)

見出し(heading)から目次をつくる。 Jupyter notebook上ではアンカーリンクになるが、htmlに変換すると無効になる。同様に、ナンバリングもできるが、htmlに変換すると無効になる。

有効にしただけでは、目次は追加されない。

  1. アイコンをクリックして、目次のポップアップを表示。

    追加されたアイコンクリック
    Table of Contents のポップアップを表示
  2. 「t」をクリックすると、.ipynbファイル内に目次を追加。

    目次を追加

Equation Auto Numbering

markdown cell上で、 \begin{equation} equations \end{equation} と数式を書くと数式番号が振られる。

htmlに変換すると、 数式番号は有効にならない。

数式番号

Collapsible Headings

見出し(Heading)の階層ごとに、cell を閉じることができる。 なお、cell を閉じてhtml変換にしても有効にならない。

non-collapse
collapse

Codefolding

コードのインデントごとに、foldできる。 これも、html変換すると有効にならない。

non-fold
fold

Gist it

Notebook(.ipynb)ファイルをGist にupload できる。 secret にするかpublic にするかも選択できる。

デフォで使うと、anonymous アカウントとしてupload される。

自分のアカウントでuploadするには、github上のsettingsからGithub personal access token を取得して設定する。

gist it

Python Markdown

Markdown上でPython で定義していた変数を表示できる。 PHPのようにHTMLに変数を展開する感じで使える。

例えば、以下のように書くと、


        # python
        In[1]:  a = 123
      

        # markdown
        a の値は、{{ a }} です。
      

「a の値は、123です。」と表示される。

その他のextension

今回インストールした拡張機能以外にも、 IBMで公開している拡張機能もあるようです。 パッと見た感じ、複数ノートファイルの検索もできるぽい。

github.com