// // //

Jupyter Notebookのマジックコマンド(マジック関数)の使い方解説

magic_00 Programming
magic_00
この記事は約8分で読めます。

Jupyter Notebook(IPython)には、それを利用する上で、いくつかのとても便利な機能がマジックコマンド(マジック関数)として標準のコマンド群として準備されています。簡単な記述で色々なことができるので、とても重宝する機能です。
マジックコマンドを使うことにより、ターミナル(Windowsではコンソール)のコマンドをJupyter Notebookから使ったり、Python以外の言語を組み合わせて使うことが可能になります。
マジックコマンドは大きく2つのグループに分けられ、1つはラインマジックと呼ばれ、もう1つはセルマジックと呼ばれています。この2つの違いを以下にまとめます。

  • ラインマジック:コマンドの先頭に「%」が付きます。引数はその行に収まっている必要があります。
  • セルマジック:コマンドの先頭に「%%」が付きます。引数は複数行にまたがっても大丈夫です。

「?」と「??」、「!」、キーボードショートカット:「shift」+「tab」

magic-07R
magic-07R

マジックコマンドの細かい話に入る前に、知っていると便利はコツについてお話しします。

「?」と「??」


一つ目は、マジックコマンドの末尾に「」を追加して実行すると、そのコマンドの「docstring」が表示され、末尾に「??」を追加すると、そのコマンドのソースコードが表示されます。

magic_01
magic_01

上のスクショはマジックコマンド「%pwd」に「?」を末尾につけて実行した結果

magic_02
magic_02

上のスクショはマジックコマンド「%pwd」に「??」を末尾につけて実行した結果

「!」

Notebook上でOSのシェルのコマンドを実行するには、シェルコマンドの前に「!」を付与して実行します。

magic_03
magic_03

上のスクショの「!ls」はJupyter Notebook上でシェルコマンドを実行した場合、「%ls」はマジックコマンドを実行した場合です。

キーボードショートカット:「shift」+「tab」

Jupyter Notbookでは、アクティブセルでマジックコマンドにカーソル(縦棒)を合わせながら、「shift」+「tab」を押すと、「docstring」がツールチップで表示されます。

magic_04
magic_04

また、「shift」を押したまま、再度「tab」を押す(「tab」を二度押しする)とマジックコマンドの詳細内容が表示されます。

magic_05
magic_05

マジックコマンドの紹介

それでは、主なマジックコマンドをラインマジック・シェルマジックごとに紹介します。ここであげるマジックコマンドは主に初心者の方に有益なものや代表的なものに限っています。これ以外のマジックコマンドについては、該当のマジックコマンド(#magicls, #magic, #quickref)で調べるなり、以下のリンクからIPythonの公式サイトにアクセスして調べてみてください。

LINK:IPython Build-in magic commands

ラインマジック紹介

magic-06R
magic-06R
  • %lsmagic:現在利用可能なマジックコマンドの一覧を表示してくれます。
  • %magic:マジックコマンドの情報を表示してくれます。
  • %time:これに続くコードの実行時間を測定し、結果を表示してくれます。
  • %timeit:これに続くコードの実行時間を何度か測定し、その中で最速であった結果と平均を表示してくれます。
  • %env:環境変数を取得したり、設定したりすることができます。
  • %bash, %script:Shellコマンドを実行することができます。
  • %who:現在宣言されている変数を表示してくれます。
  • %whos:現在宣言されている変数とその型、内容を表示してくれます。
  • %pwd:現在のディレクトリを表示します。
  • %history:コードセルの実行履歴を一覧で表示してくれます。
  • %ls:カレントディレクトリーのファイルを一覧で表示してくれます。
  • %matplotlib inline:pyplotなどでグラフを描写すると結果が別ウインドーが開きそこに表示されますが、このマジックコマンドを使うとnotebook内にグラフが表示されるようになります。
  • %matplotlib tk:別ウインドーにインタラクティブなグラフを表示してくれます。
  • %matplotlib notebook:inlineを指定した場合と同様に、コードセルの下にグラフを表示してくれます。グラフはインタラクティブなグラフになります。
  • %quickref:クイックレファレンス一覧を表示してくれます。

セルマジック紹介

magic-08R
magic-08R
  • %%timeit:%timeitの機能をセル内のすべてのコードに適応します。
  • %%html, %%HTML:htmlのコードの記述、実行を可能にします。
  • %%!, %%sx, %%system:shellコマンドの実行を可能にします。
  • %%js:Javascriptのコードの記述、実行を可能にします。
  • %%ruby:rubyのコードの記述、実行を可能にします。
  • %%perl:perlのコードの記述、実行を可能にします。
  • %%python:pythonのコードの記述、実行を可能にしま

興味のあるマジックコマンドがあれば、実際にJupyter Notebookを立ち上げてコマンドを打ち込んで実行してみてください。「百聞は一見に如かず」です。色々と試して、少しづつ自分の知識に加えていってください。

また、本記事の作成には以下の書籍「PythonユーザのためのJupyter[実践]入門」を参考にしています。

まとめ

magic-09R
magic-09R

Pythonの学習環境として、また、データの分析、解析環境として非常に便利なJupyter Notebookですが、今回ご紹介したマジックコマンドを合わせて使うことにより、他のコンピュータ言語を併用したり、複雑な作業を簡単は記述で済ませることができるようになります。Jupyter Notebookに関しては、その実装の方法に始まり、ショートカットマジックコマンドとご紹介してきました。今後は機会があれば、Jupyter NotebookのExtensionをご紹介しようと考えています。
それでは、最後までお付き合い頂き、ありがとうございました。さようなら。

おすすめプログラミングスクール

テックキャンプ エンジニア転職

管理人より:

ビジネス系YouTuberとして著名なマコなり社長が社長を務める株式会社Divが運営するTECH CAMP
やり切れる教材と就職までのサポートが大きな強めです。

また、受講の際には各自Macを準備する必要があります。(有料でレンタルあり)就職できなければ授業料返還の保証がありますが、39才以下との条件があります。ご注意ください。

費用は短期集中で一括払いで総額税抜648,000円、夜間・休日で848,000円と安くない費用になります。

コロナの影響で閉鎖していた教室もマスク着用などの条件付きで、全室、2020年11月2日より使用可能になりました。

眺めていても何も始まりません。これを機に、まずは以下のリンクから無料カウンセリングを受けられてみてはいかがでしょうか。

教育について ・圧倒的コミット量と網羅性 テックキャンプ エンジニア転職は600時間をかけてフロント/サーバーサイド/インフラ全てを一通り学びます。

サポート体制について ・学習環境 オンライン問わずメンターに質問し放題なため、途中で諦めてしまうことがありません。 ・専属のトレーナーの存在 トレーナーは毎週の学習計画の作成、日々の進捗確認、 キャリアアドバイザーへのフィードバックなど期間中は二人三脚となってサポートします。 ・専属のキャリアアドバイザー 毎週のキャリア面談、面接対策や履歴書の添削、企業提案など転職が決定するまでサポートし続けます。 また、企業に入社した後も半年間であれば無料でキャリア相談を受け付けています。

受講スタイル:通学またはオンライン
場所:東京(渋谷)、大阪、名古屋、福岡
価格
入会金不要で月々21,200円(税込)から、一括は648,000円(税抜)(短期集中)
主な学習言語:HTML/CSS、JavaScriptRuby on Rails等
期間:短期集中で10週間、夜間・休日で6ヶ月

コメント