NO IMAGE

【Jupyter】マジックコマンドとは?概要と使い方を解説

NO IMAGE

IPythonことJupyter Notebookには、利用時の「こういう機能欲しいな~」の声に応えるように、ユーザの利便性をたかめる「マジックコマンド」が用意されています。この記事では、その種類・使い方を解説していきます。

ラインマジック/セルマジックの違い

マジックコマンドは、大きく2種類に分かれます。

  1. ラインマジック:コマンド冒頭が「%」ひとつ。引数はその行におさめて書く
  2. セルマジック:コマンド冒頭が「%」ふたつ。引数が複数行になってもOK

この2つについて、代表的なコマンドを紹介します。

代表的なラインマジック

%lsmagic:マジックコマンド一覧の確認

Jupyter Notebookで利用できるマジックコマンドのリストを確認できます。

マジックコマンドについてはWeb上に公式ドキュメントもあるが、バージョンや環境によって使えないものもあるので、実際に起動しているJupyter Notebook / IPythonの中で確認したほうが確実。

Jupyter Notebookでマジックコマンド一覧を確認する%lsmagic
%lsmagic
# Available line magics:
# %alias  %alias_magic  %autoawait  %autocall ...
#
# Available cell magics:
# %%!  %%HTML  %%SVG  %%bash ...
# 
# Automagic is ON, % prefix IS NOT needed for line magics.

%pwd:カレントディレクトリ表示

%pwdは、カレントディレクトリを表示してくれます。

%env:環境変数取得・設定

環境変数の取得、設定が行えます。

%who / %whos

その時点で宣言されている変数を知るためのコマンドです。%whoは変数のみ、%whosは変数とその型、および内容を取得できます。

foo = "hello"
bar = 133

%who
# bar	 foo	 

%whos
# Variable   Type    Data/Info
# ----------------------------
# bar        int     133
# foo        str     hello

%matplotlib inline

%matplotlib tk

代表的なセルマジック

%%sh:シェルコマンドの実行

このセルマジックを宣言したセルで、シェルコマンドの実行ができるようになります。

%%sh
echo Hello, world
# Hello, world

%%html:HTMLコードの記述・実行を可能に

セル内でHTMLコードの記述、実行を可能にします。

%%js:Javascriptコードの記述・実行を可能に

セル内でJavascriptコードの記述、実行を可能にします。

%%ruby:rubyコードの記述・実行を可能に

セル内でrubyコードの記述、実行を可能にします。

参考