Jupyter-ipython-magic-commands

提供:Dev Guides
移動先:案内検索

IPython-マジックコマンド

マジックコマンドまたはマジック関数は、標準のPythonシェルと比較してIPythonが提供する重要な機能強化の1つです。 これらの魔法のコマンドは、Pythonを使用したデータ分析の一般的な問題を解決することを目的としています。 実際、IPython自体の動作を制御します。

マジックコマンドは、Python構文が最も自然な構文ではない便利な機能として機能します。 無効なPython構文をワークフローに埋め込むのに役立ちます。

マジックコマンドの種類

魔法のコマンドには2種類あります-

  • ラインマジック
  • セルマジック

ラインマジック

それらはコマンドラインコールに似ています。 それらは%文字で始まります。 行の残りは、括弧または引用符なしで渡される引数です。 ラインマジックは式として使用でき、戻り値は変数に割り当てることができます。

セルマジック

%%文字のプレフィックスがあります。 ラインマジック関数とは異なり、呼び出しの下で複数の行を操作できます。 実際には、受け取った入力に任意の変更を加えることができます。これは、有効なPythonコードである必要さえありません。 ブロック全体を単一の文字列として受け取ります。

マジック関数、組み込みのマジック、およびそれらのdocstringについて詳しく知るには、magicコマンドを使用します。 特定のマジック関数の情報は、%* magicfunction?*コマンドによって取得されます。 ここで、組み込みの行とセルのマジックコマンドのいくつかを説明しましょう。

組み込みのラインマジック

%autocall [mode]

このマジック関数は、括弧を使用せずに関数を自動的に呼び出し可能にします。 3つの可能なモードパラメータを取ります:* 0(オフ)、1(スマート)はデフォルト*または* 2(常にオン)*です。

ビルトインラインマジック

%automagic

マジック関数は、1に設定されている場合、最初の%を入力することなく呼び出し可能です。 引数なしで、オン/オフを切り替えます。 無効にするには、0に設定します。

次の例は、%automagicが1に設定されているときに、先頭に%を付けずに呼び出されるマジック関数*%pwd *(現在の作業ディレクトリを表示)を示しています。

%automagic

%cd

この行の魔法は、現在のディレクトリを変更します。 このコマンドは、IPythonセッション中にアクセスするディレクトリの内部リストを変数_dhに自動的に保持します。 「cd-<tab>」を実行して、ディレクトリの履歴を簡単に確認することもできます。

%cd

使用法

%cdコマンドは、次の方法で使用することができます-

  • *%cd <dir> *-現在の作業ディレクトリを<dir>に変更します
  • *%cd .. *-現在のディレクトリを親ディレクトリに変更します
  • *%cd *-最後にアクセスしたディレクトリに変更します。

%dhist

このマジックコマンドは、現在のセッションでアクセスしたすべてのディレクトリを出力します。 %cdコマンドが使用されるたびに、このリストは _dh 変数で更新されます。

%dhist

%編集

この魔法のコマンドは、Pythonスクリプトを編集するために、現在のオペレーティングシステム(Windows用のメモ帳)のデフォルトのテキストエディターを呼び出します。 エディターが閉じられると、スクリプトが実行されます。

%env

この魔法のコマンドは、すべての環境変数をリストします。 また、特定の変数の値を読み取るか、環境変数の値を設定します。

使用法

%cdコマンドは、次の方法で使用することができます-

  • *%env *-すべての環境変数をリストします
  • *%env var *-varの値を取得
  • *%env var val *-varの値を設定

%env

%gui [GUINAME]

引数なしで使用すると、このコマンドはIPython GUIイベントループ統合を有効または無効にします。 GUINAME引数を使用すると、このマジックはデフォルトのGUIツールキットを指定されたツールキットに置き換えます。

Sr.No. Command & Description
1

%gui wx

wxPythonイベントループ統合を有効にする

2 *%gui qt4

qt*

PyQt4イベントループ統合を有効にする

3

%gui qt5

PyQt5イベントループ統合を有効にする

4

%gui gtk

PyGTKイベントループ統合を有効にする

5

%gui gtk3

Gtk3イベントループ統合を有効にする

6

%gui tk

Tkイベントループ統合を有効にする

7

%gui osx

Cocoaイベントループ統合を有効にする

8
(requires %matplotlib 1.1) 9

%lsmagic

現在利用可能なすべてのマジック機能を表示します

%lsmagic

%matplotlib

この関数は、IPythonセッション中にmatplotlibインタラクティブサポートをアクティブにします。 ただし、matplotlibライブラリはインポートしません。 matplotlibのデフォルトのGUIツールキットはTkAggです。 ただし、別のGUIバックエンドを明示的に要求できます。 次のように利用可能なバックエンドのリストを見ることができます-

In [4]: %matplotlib --list
Available matplotlib backends:
['osx', 'qt4', 'qt5', 'gtk3', 'notebook', 'wx', 'qt', 'nbagg','gtk', 'tk', 'inline']

ここに示すIPythonセッションは、 qt ツールキットを使用して正弦波をプロットします-

%matplotlib

Jupyter Notebookを使用している場合、%matplotlibインラインディレクティブは、ブラウザーにのみプロット出力を表示します。

%ノート

この関数は、現在のIPython履歴を、ipynb拡張子を持つIPythonノートブックファイルに変換します。 前の例の入力セルは、sine.ipynbとして保存されます

%notebook sine.ipynb

%pinfo

この関数はオブジェクトのイントロスペクションに似ていますか? キャラクター。 オブジェクトに関する情報を取得するには、次のコマンドを使用します-

%pinfo object

これは* object?または?object *と同義です。

%精度

このマジック関数は、浮動小数点の結果を、10進数の後の指定された桁に制限します。

%precision

%pwd

このマジック関数は、現在の作業ディレクトリを返します。

%pwd

%pylab

この関数は、現在のIPythonセッションにmatplotlibおよびnumpyライブラリを取り込みます。

%pylab

%想起

パラメータなしで実行すると、この関数は前のコマンドを実行します。

  • %recall n *では、その前の数字が入力セル番号であることに注意してください。 したがって、n番目のセルのコマンドが呼び出されます。 *%recall 1-4 *などのコマンドを使用して、セルのセクションでコマンドを呼び出すことができます。 現在の入力セルにはリコールされたセルが表示され、Enterキーが押されるまでカーソルが点滅します。

%recall

%run

このコマンドは、IPythonシェル内からPythonスクリプトを実行します。

%run

%時間

このコマンドは、Python式を実行するためにIPython環境に必要な時間を表示します。

%time

%timeit

この関数は、Python式を実行するためにIPython環境で必要な時間も表示します。 Pythonステートメントまたは式の時間実行は、timeitモジュールを使用します。 この関数は、ここで説明されているように、ラインとセルマジックの両方として使用できます-

  • *行モード*では、単一行の時間を計ることができます。
  • *セルモード*では、最初の行のステートメントがセットアップコードとして使用され、セルの本体の時間が計測されます。 セル本体は、セットアップコードで作成された変数にアクセスできます。

%who

この行の魔法は、いくつかの最小限の書式設定で、すべての対話型変数を印刷します。 引数が指定されている場合、これらのいずれかに一致するタイプの変数のみが出力されます。

%who

IPythonカスタムラインマジック関数

IPythonのコアライブラリにはregister_line_magicデコレータが含まれています。 ユーザー定義関数は、このデコレータを使用してラインマジック関数に変換されます。

IPythonカスタムラインマジック関数