macでインフォマティクス

macでインフォマティクス

NGS関連のインフォマティクス情報についてまとめています。

Jupiter notebookの使い方其の3(数式とマジックコマンドについて)

更新中

 

第3回の今回は、数式の表示とマジックコマンドについてです(第2回)。Jupyter Notebookに含まれるMarkdownパーサーはJSのMathJaxライブラリ(wiki)に対応しており、LaTex( ラテック、ラテフ)で書いた数式をノートブック上にレンダリングして表示することができます。数式を載せることでコードをノート上に載せるだけよりずっと理解しやすくなります。手順はシンプルで、Markdownモードにして$ $または$$ $$で囲んで数式を書くだけです。

 

Jupiter notebook Docu ment - Motivating Examples

 

実際に書いてみましょう。 Markdownモードにして書きます。数式部分は$$ $$で囲むか、\begin{math} \end{math}で囲みます(mathは紛らわしくない適当な文字)(*1)。

f:id:kazumaxneo:20200505125152p:plain

出力です。数式なので変数は斜体(イタリック)、数値、演算子は立体(ローマン)です(*2)。

f:id:kazumaxneo:20200505125329p:plain


こちらは

f:id:kazumaxneo:20200505122610p:plain

オイラーの等式でした(*3)。

f:id:kazumaxneo:20200505122622p:plain

$ $だと左揃え)

 

複雑な数式もLaTeX記法で書きます。

f:id:kazumaxneo:20200505002152p:plain

出力

f:id:kazumaxneo:20200505002421p:plain

このような感じです。

$ $を改行なしで書くと

f:id:kazumaxneo:20200505002602p:plain

文章中に埋め込む事ができます。

f:id:kazumaxneo:20200505002607p:plain

 

このように美しい数式を書けますが、LaTeXに慣れていないと大変です。書き方が分からない時は奥村晴彦先生LaTeX2ε美文書作成入門などがバイブルになると思います。

 

こちらはMathJaxのコマンド紹介サイトです。コピペするだけで使えます。

 

補足 

最近では数式からLaTeX記法に変換するツールも存在します。こちらのブログ記事を読んで下さい。 

数式部分を囲むだけでほぼ正しくOCR化して変換してくれます。すごいアプリです。

f:id:kazumaxneo:20200505115453p:plain

ログイン後、右上からアプリをダウンロード。アプリを常駐後、commnad + option + M(winPCはCtrl + Alt + M)で数式キャプチャ(上限あり*4)。

 

 

マジックコマンド 

 次はマジックコマンドについて簡単に説明します。マジックコマンドはIPythonカーネル固有のコマンドで(jupyterとipythonの違い)、ディレクトリ移動、ファイル一覧、python以外のコードの表示機能などを可能にする、ノートをサポートする役割を持つ一連のコマンド群です。%をprefixとして%pwdのように始めます。%を使うのは、%はPythonでは有効な単項演算子解説サイト)ではないためです(%無しでも初期は認識されるが変数を定義すると上書きされる)。

 

Jupiter notebook Docu ment - Built-in magic commands 

 

少しだけコマンドを挙げてみます(*6)。Markdownモードの人はコードモードに戻して下さい(Y)。

 

%pwd

現在のパス

f:id:kazumaxneo:20200505173202p:plain

unixpwdと同じですが、あくまで機能をミミックしたコマンドです。

 

%pwd??のように??を2回でソースコードを表示します。

f:id:kazumaxneo:20200505173637p:plain

(escで閉じる)

?1回でhelp表示になります(編集モード中にshft + tabでも可能)。%pwd?だと

f:id:kazumaxneo:20200505173747p:plain

 

%cd 

作業ディレクトリ変更(移動)

f:id:kazumaxneo:20200505174518p:plain

 

%ls

ファイル一覧表示

f:id:kazumaxneo:20200505175341p:plain

 

%rm 

ファイルを消す

f:id:kazumaxneo:20200505180145p:plain

 

%run xxx.pyで外部のpythonスクリプトxxx.pyを実行。

(外部の jupyter ノートブックの実行も可能) 

 

%matplotlib

%matplotlib inlineを宣言しておくと、Notebook内にmatplotlibの結果を描画する。Notebook上でmatplotlibを使うために必要。

 

%lsmagic

現在利用可能なマジックコマンドを表示

f:id:kazumaxneo:20200505135713p:plain

 

これ以外にもたくさんのマジックコマンドがあります。Qiitaの記事を読んでみてください。

 

駆け足でしたが、これで基本的な事は説明しました。明日はまとめの文章を書きます。 

引用

Jupyter Notebooks – a publishing format for reproducible computational workflows

Kluyver, Thomas, Ragan-Kelley, Benjamin, Pérez, Fernando, Granger, Brian, Bussonnier, Matthias, Frederic, Jonathan, Kelley, Kyle, Hamrick, Jessica, Grout, Jason, Corlay, Sylvain, Ivanov, Paul, Avila, Damián, Abdalla, Safia, Willing, Carol and Jupyter development team, (2016) Jupyter Notebooks – a publishing format for reproducible computational workflows. Loizides, Fernando and Scmidt, Birgit (eds.)

In Positioning and Power in Academic Publishing: Players, Agents and Agendas. IOS Press. pp. 87-90 . (doi:10.3233/978-1-61499-649-1-87)

 

参考

*1

 

*2

 

*3

映画にもなった "博士の愛した数式"(新潮社)で有名ですね。

 

*4 


 *5

独自のマジックコマンドを登録することもできます。 

 

*6


そのほか参考にした資料

TEXLaTeXの違い