Upgrade to Pro — share decks privately, control downloads, hide ads and more …

IPythonマジックコマンドを作る

ShibaNyan
March 29, 2020

 IPythonマジックコマンドを作る

Jupyter Notebookは、インタラクティブにPythonなどのプログラムを実行する環境として人気があります。 Jupyter Notebookで拡張機能を作る方法としてはnbextensionsがありますが、作りたいものによっては作成方法が若干複雑です。 そこで、nbextensionsではなくIPythonのマジックコマンドを使って便利ツールを簡単に作る方法を紹介します。

ShibaNyan

March 29, 2020
Tweet

More Decks by ShibaNyan

Other Decks in Technology

Transcript

  1. 目次 - マジックコマンドは何をしているのか - マジックコマンドでできること - マジックコマンドを作る - 今回の題材: import文の整理

    - 何もしないマジックコマンド - ライブラリの関数を持ってくる - その他の実装例 - マジックコマンドの使いどころ - Nbextensionsとの比較
  2. マジックコマンドは何をしているのか セル内のソースコード (文字列) 1. バイトコードに変 換 2. 時間計測開始 3. 実行

    4. 時間計測終了 https://github.com/ipython/ipython/blob/master/IPython/core/magics/execution.py#L1184 実行にかかった時 間を出力 %%time の例
  3. Nbextensionsとの比較 IPythonマジックコマンド Nbextensions 主に使う言語 Python JavaScript Jupyter Notebookの JavaScript APIを使う

    × (できなくはないが非常にや りづらい) ◯ 作りやすさ ◯ (物によっては数行) △ (インストール・エスケープ 処理したりといった手間 )
  4. Nbextensionsとの比較 IPythonマジックコマンド Nbextensions 主に使う言語 Python JavaScript Jupyter Notebookの JavaScript APIを使う

    × (できなくはないが非常にや りづらい) ◯ 作りやすさ ◯ (物によっては数行) △ (インストール・エスケープ 処理したりといった手間 ) 他のIPythonフロントエンド (IPython, Jupyter Lab, VSCodeなど) でも動く ◯ (JavaScriptでJupyter NotebookのAPIを使わなけ れば大丈夫) ×
  5. おわり - マジックコマンドは何をしているのか - マジックコマンドでできること - マジックコマンドを作る - 今回の題材: import文の整理

    - 何もしないマジックコマンド - ライブラリの関数を持ってくる - その他の実装例 - マジックコマンドの使いどころ - Nbextensionsとの比較