Jupyter Notebook チートシート

必須のショートカットとマジックコマンド

目次

Jupyter Notebookの生産性を飛躍的に向上させるために、データサイエンスおよび開発体験を変革するための必須のショートカット、マジックコマンド、ワークフローのヒントをご活用ください。

jupyter notebook ui

Jupyter Notebookは、インタラクティブなコンピューティング、データ分析、機械学習ワークフローのための事実上の標準となっています。Pythonでデータサイエンスを実施している場合でも、AIモデルを試行錯誤している場合でも、コードプロトタイピングを行っている場合でも、Jupyterのキーボードショートカットやマジックコマンドをマスターすることで、生産性が大幅に向上します。

このチートシートでは、すべてのJupyterユーザーが知っておくべき最も重要なコマンドとショートカットを網羅しており、基本的なセルナビゲーションから、ワークフローを簡素化する高度なマジックコマンドまでカバーしています。Python開発の初心者であれば、Pythonチートシートも参考になるでしょう。これは、Jupyterセル内でシームレスに動作するPython言語構造を理解するのに役立ちます。

コマンドモードと編集モードの理解

Jupyter Notebookは、キーボードショートカットの利用可能性を決定する2つの異なるモードで動作します。

  • コマンドモードEscを押すことでアクティブ化):セルレベルの操作(セルの作成、削除、変換)を制御
  • 編集モードEnterを押すことでアクティブ化):セル内のコンテンツを編集可能

最も覚えておくべきショートカットは、コマンドモードでHを押すことで、完全なキーボードショートカットヘルプダイアログが表示されることです。特定のショートカットを忘れてしまったときのクイックリファレンスとして役立ちます。

必須のコマンドモードショートカット

セルナビゲーションと実行

Jupyterでのコアワークフローは、セルを効率的に実行することに中心を置きます:

  • Shift + Enter:現在のセルを実行し、次のセルを選択。このショートカットは、コードを順番に実行する際に最も頻繁に使用されます。
  • Ctrl + Enter:現在のセルを実行するが、次のセルに移動しない。セルを複数回再実行したいときに最適です。
  • Alt + Enter:現在のセルを実行し、下に新しいセルを挿入。頻繁に新しいセルを追加する必要があるイテラティブな開発に最適です。

セル管理

ノートブック構造を効率的に管理することは、クリーンで整理されたノートブックを維持するために重要です:

  • A:現在のセルの上に新しいセルを挿入
  • B:現在のセルの下に新しいセルを挿入
  • D, DDを2回押す):現在のセルを削除。注意が必要です。
  • Z:最後のセル削除を元に戻す。重要なセルを誤って削除したときの救世主です。
  • Shift + M:選択したセルをマージ。Shift + JまたはShift + Kを使って複数のセルを選択し、それからマージします。

セルタイプの変換

文書化されたノートブックを作成するために、セルタイプを迅速に切り替えることが不可欠です:

  • Y:セルをコードに変換
  • M:セルをMarkdownに変換
  • R:セルをRaw(実行されない、ノートに便利)に変換
  • 1から6:見出しレベル1から6に変換、構造化されたドキュメント作成に最適

ケーラー操作

長時間の計算やデバッグを扱う際、ケーラーの制御は不可欠です:

  • I, IIを2回押す):ケーラーを中断。走り続ける計算を停止する必要があるときに重要です。
  • 0, 00を2回押す):ケーラーを再起動。変数をすべてクリアしてから新たに開始したいときに使用します。

表示とナビゲーション

  • L:現在のセルの行番号を切り替え。デバッグや特定の行を参照するときに役立ちます。
  • O:セル出力を切り替え。プレゼンテーション時にノートブックを整えるために出力を隠すのに便利です。
  • H:キーボードショートカットヘルプダイアログを表示

必須の編集モードショートカット

セル内でコードを編集する際、これらのショートカットは一般的なテキストエディタの機能に類似しています。

テキスト編集

  • Tab:コード補完またはインデント。Jupyterのオートコンプリートは強力で文脈に応じたものです。
  • Shift + Tab:カーソル下のオブジェクトのツールチップ/ドキュメントを表示。ノートブックから離れることなくAPIを探索するのに非常に役立ちます。
  • Ctrl + ]:選択された行をインデント
  • Ctrl + [:選択された行をデインデント
  • Ctrl + /:選択された行のコメントを切り替え。デバッグ中にコードを一時的にコメントアウトするのに不可欠です。

ナビゲーション

  • Ctrl + A:セル内のすべてのテキストを選択
  • Ctrl + Z:元に戻す
  • Ctrl + Shift + Z または Ctrl + Y:やり直し
  • Ctrl + Home:セルの先頭へ移動
  • Ctrl + End:セルの末尾へ移動
  • Ctrl + Left:カーソルを1語左に移動
  • Ctrl + Right:カーソルを1語右に移動

モード切り替え

  • Esc:コマンドモードへ切り替え(編集モードから)

マジックコマンド:ワークフローを強化する

マジックコマンドは、Jupyterの機能を拡張する特別な指示です。2つのタイプに分類されます:行マジック%でプレフィックス)は1行に作用し、セルマジック%%でプレフィックス)はセル全体に作用します。

パフォーマンスプロファイリング

コードのパフォーマンスを理解することは最適化において不可欠です。Jupyterには組み込みのタイミングコマンドが用意されています:

# 単一の実行を計測
%time sum(range(1000000))

# 複数の実行で平均を取る(より正確)
%timeit sum(range(1000000))

# セル全体を計測
%%time
total = 0
for i in range(1000000):
    total += i

%timeitコマンドは特に価値があり、コードを複数回実行し、実行時間を統計的に提供するため、同じ問題に対して異なるアプローチをベンチマークするのに最適です。

外部スクリプトの実行

%runマジックコマンドは、ノートブック内で外部のPythonスクリプトを実行できるため、コードをモジュール化するのに便利です:

%run my_script.py

これは、大きなプロジェクトで再利用可能な関数を別のファイルに保持する際に特に役立ちます。Python環境を管理している場合は、uvvenvなどのツールを使用している可能性があり、%runはこれらの設定とシームレスに動作します。

パッケージ管理

ノートブックからPythonパッケージを直接インストールおよび管理できます:

!pip install numpy pandas matplotlib
!conda install scipy

これは、ターミナルとノートブックの切り替えを不要にし、開発ワークフローを簡素化します。!のプレフィックスはシェルコマンドを実行し、以下で詳しく説明します。

可視化

matplotlibを使用してデータ可視化を行うには:

%matplotlib inline

これにより、プロットがノートブックセル内に直接レンダリングされ、スムーズな可視化体験が提供されます。また、JupyterLabでインタラクティブなプロットを使用するには%matplotlib widgetも利用できます。

ファイル操作

%%writefileセルマジックコマンドはセル内容をファイルに書き込みます:

%%writefile example.py
def hello_world():
    print("Hello, World!")
    return True

これは、ノートブックからスクリプトを生成したり、コードスニペットを直接保存したりするのに便利です。逆に、標準のPythonファイル操作やシェルコマンドを使用してファイルを読み込むことも可能です。

シェルコマンド

ノートブックセルから直接シェルコマンドを実行できます:

# 単一行のシェルコマンド
!ls -l
!pwd
!git status

# 複数行のシェルコマンド
%%bash
echo "Hello from Bash"
ls -l
find . -name "*.py" | head -10

この統合は、ファイル管理、バージョンコントロール操作、システム管理タスクをノートブック環境から行うために非常に強力です。

利用可能なマジックコマンドの探索

利用可能なすべてのマジックコマンドを発見するには:

# すべてのマジックコマンドを一覧表示
%lsmagic

# 特定のマジックコマンドについてのヘルプ
%timeit?
%matplotlib?

任意のマジックコマンドの後に?演算子を付けると、そのドキュメント、パラメータ、使用例が表示されます。これは、Jupyterの機能をインタラクティブに探索するのに非常に優れた方法です。

高度なヒントとベストプラクティス

ノートブックの整理

  1. Markdownセルを積極的に使用する:よく文書化されたノートブックは、理解しやすく、メンテナンスが簡単です。見出しレベル(1〜6)を使用して明確な構造を作成してください。

  2. セルは焦点を絞って使用する:各セルには単一で明確な目的を持つようにしてください。これにより、デバッグが容易になり、読みやすさが向上します。

  3. セル実行番号を使用する:実行番号(In [1]、In [2]など)は、セルが順序通り実行されたことを追跡するのに非常に役立ちます。

大規模なノートブックでの作業

ノートブックが大きくなると、以下の技術が整理を助けます:

  • ナビゲーションにテーブルオブジェクト拡張機能(利用可能な場合)を使用
  • 関連するセクションを別々のノートブックに分割
  • %%writefileを使用して再利用可能なコードをPythonモジュールに抽出
  • ケーラーを定期的に再起動し、すべてのセルを実行して再現性を確保

他のツールとの統合

Jupyterノートブックは現代のPythonツールリングと非常にうまく連携します。LLMと構造化された出力を必要とする場合は、Ollamaで構造化されたLLM出力と統合できます。ウェブスクレイピングやデータ処理では、HTMLをMarkdownに変換するライブラリを使用する可能性があります。これは、HTMLからMarkdownへの変換ガイドでカバーしています。

デバッグワークフロー

  1. 例外後で%debugマジックを使用してデバッガーに入りましょう
  2. 例外時に自動的にデバッガーに入るため%pdb onを使用しましょう
  3. プリンターステートメントと%timeitはパフォーマンスボトルネックを特定するのに役立ちます
  4. 変数が予期せぬ状態になるときに、ケーラーを再起動(0, 0)しましょう

カスタマイズ

キーボードショートカットをカスタマイズするには、Jupyter NotebookメニューのHelpKeyboard Shortcutsにアクセスしてください。これにより、ワークフローの好みに合わせて環境をカスタマイズできます。

結論

Jupyter Notebookのショートカットとマジックコマンドをマスターすることで、単なるコードエディタから強力なインタラクティブなコンピューティング環境に変身します。まず、最も頻繁に使用されるショートカット(Shift+EnterEscABD+DMY)を覚えてください。その後、徐々にマジックコマンドをワークフローに組み込んでください。これらのコマンドを学ぶための時間投資は、生産性とワークフロー効率において大きなリターンをもたらします。

覚えておいてください:コマンドモードでいつでもHを押してすべてのショートカットリファレンスを確認し、%lsmagicを使用して利用可能なすべてのマジックコマンドを探索してください。プログラミングを楽しんでください!

有用なリンク

外部参照