VS Code での Jupyter Notebook
Jupyter (旧称 IPython Notebook) は、Markdown テキストと実行可能な Python ソース コードを、ノートブックと呼ばれる 1 つのキャンバス上で簡単に組み合わせることができるオープンソース プロジェクトです。Visual Studio Code は、(Jupyter 拡張機能を介して) Jupyter Notebook のネイティブな操作をサポートしており、Python コード ファイルを介した操作もサポートしています。このトピックでは、Jupyter Notebook で利用可能なネイティブ サポートについて説明し、以下の方法について示します。
- Jupyter Notebook の作成、開く、および保存
- Jupyter コード セルの操作
- 変数エクスプローラーとデータ ビューアーを使用した変数の表示、検査、およびフィルター処理
- リモート Jupyter サーバーへの接続
- Jupyter Notebook のデバッグ
環境のセットアップ
Jupyter Notebook で Python を操作するには、VS Code で Anaconda 環境、または Jupyter パッケージをインストールした別の Python 環境をアクティブにする必要があります。環境を選択するには、コマンド パレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) から Python: インタープリターを選択 (Python: Select Interpreter) コマンドを使用します。
適切な環境がアクティブになると、Jupyter Notebook の作成とオープン、コード セルを実行するためのリモート Jupyter サーバーへの接続、および Jupyter Notebook の Python ファイルとしてのエクスポートが可能になります。
環境変数
環境変数は .env ファイルから読み込まれます。詳細については、Python 環境のドキュメントの該当セクションを参照してください。
ワークスペースの信頼
Jupyter Notebook を使い始める際は、信頼されたワークスペースで作業していることを確認してください。ノートブックには有害なコードが埋め込まれている可能性があり、ワークスペースの信頼 (Workspace Trust) 機能を使用することで、自動的なコード実行を許可または制限するフォルダーとそのコンテンツを指定できます。
VS Code が 制限付きモード (Restricted Mode) で実行されている信頼されていないワークスペースでノートブックを開こうとすると、セルを実行できず、リッチ出力は非表示になります。
Jupyter Notebook の作成または開く
Jupyter Notebook を作成するには、コマンド パレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) から 作成: 新しい Jupyter Notebook (Create: New Jupyter Notebook) コマンドを実行するか、ワークスペース内に新しい .ipynb ファイルを作成します。

次に、右上にあるカーネル ピッカーを使用してカーネルを選択します。

カーネルを選択すると、各コード セルの右下にある言語ピッカーが、そのカーネルがサポートする言語に自動的に更新されます。

既存の Jupyter Notebook がある場合は、ファイルを右クリックして VS Code で開くか、VS Code のエクスプローラーから開くことができます。
セルの実行
単一のコード セルの実行
コードを追加したら、セルの左側にある実行 (Run) アイコンを使用してセルを実行でき、出力はコード セルの下に表示されます。

選択したコード セルを実行するために、コマンド モードと編集モードの両方でキーボード ショートカットを使用することもできます。Ctrl+Enter は、現在選択されているセルを実行します。Shift+Enter は、現在選択されているセルを実行し、直下に新しいセルを挿入します (フォーカスは新しいセルに移動します)。Alt+Enter は、現在選択されているセルを実行し、直下に新しいセルを挿入します (フォーカスは現在のセルに残ります)。
複数のコード セルの実行
複数のコード セルを実行する方法はいくつかあります。Notebook エディターのメイン ツールバーにある二重矢印を使用してノートブック内のすべてのセルを実行するか、現在のコード セルの上または下にある すべて実行 (Run All)、上をすべて実行 (Run All Above)、または下をすべて実行 (Run All Below) を選択します。

セクション内のセルを実行
ノートブック内の関連するセルをより簡単に実行するために、Markdown のセクション ヘッダーでグループ化されたセルを セクション内のセルを実行 (Run Cells in Section) アクションで実行できます。このアクションは、ノートブックの「アウトライン」ビューおよび「スティッキー スクロール」要素で利用できます。
スティッキー スクロール要素内では、任意のヘッダーを右クリックし、コンテキスト メニューのアクションからセクションを実行します。アウトライン ビュー内では、ホバーまたは選択時に表示されるツールバー アイコンを選択し、表示されたアクションから単一のセルまたはセルのセクションを実行します。
Jupyter Notebook の保存
キーボード ショートカット Ctrl+S または ファイル > 保存 を使用して、Jupyter Notebook を保存できます。
Jupyter Notebook のエクスポート
Jupyter Notebook は、Python ファイル (.py)、PDF、または HTML ファイルとしてエクスポートできます。エクスポートするには、メイン ツールバーの ... > エクスポート (Export) を選択します。ファイル形式オプションのドロップダウンが表示されます。

注意: PDF としてエクスポートするには、TeX がインストールされている必要があります。インストールされていない場合、PDF オプションを選択したときにインストールが必要である旨の通知が表示されます。また、ノートブックに SVG のみの出力がある場合、それらは PDF に表示されないことに注意してください。PDF に SVG グラフィックスを含めるには、出力に SVG 以外の画像フォーマットが含まれていることを確認するか、一旦 HTML にエクスポートしてからブラウザーを使用して PDF として保存してください。
Notebook エディターでのコード セルの操作
Notebook エディターを使用すると、Jupyter Notebook 内でのコード セルの作成、編集、実行を簡単に行うことができます。
コード セルの作成
デフォルトでは、空白のノートブックには開始用の空のコード セルが 1 つ用意されており、既存のノートブックでは下部に 1 つ配置されます。空のコード セルにコードを追加して開始します。
msg = "Hello world"
print(msg)

コード セルのモード
コード セルを操作する場合、セルは「未選択」、「コマンド モード」、「編集モード」の 3 つの状態のいずれかになります。コード セルの左側にある縦棒とエディターの境界線が、セルの現在の状態を示します。縦棒が表示されていない場合、セルは未選択です。セルが選択されている場合、コマンド モードまたは編集モードになります。

コマンド モードでは、セルの左側に太い縦棒が表示されます。セルに対する操作が可能になり、キーボード コマンドを受け付けます。

編集モードでは、太い縦棒に加えて、セル エディターの周囲に枠線が表示されます。セルの内容 (コードまたは Markdown) を変更できます。

モードを切り替えるには、キーボードまたはマウスを使用します。キーボードでは、Enter キーを押すと編集モードに移動し、Esc キーを押すとコマンド モードに移動します。マウスでは、セルの左側にある縦棒をクリックするか、コード セルのコード/Markdown 領域の外側をクリックします。
コード セルの追加
メイン ツールバー、セルのセル追加ツールバー (ホバー時に表示)、およびキーボード コマンドを使用して、コード セルを追加できます。

現在選択されているセルの下に新しいセルを追加するには、メイン ツールバーまたはセルのホバー ツールバーにあるプラス アイコンを使用します。
コード セルがコマンド モードのときに、A キーを使用すると選択したセルの上、B キーを使用すると選択したセルの下にセルを追加できます。
コード セルの選択
マウス、またはキーボードの上下の矢印キーを使用して、選択するコード セルを変更できます。コード セルがコマンド モードのときは、J キー (下) および K キー (上) を使用することもできます。
複数のコード セルの選択
複数のセルを選択するには、まず 1 つ of のセルを選択状態にします。背景色が塗りつぶされているのが、選択されたセルを示します。連続するセルを選択するには、Shift キーを押しながら、選択したい最後のセルをクリックします。任意の複数のセルを選択するには、Ctrl キーを押しながら、選択肢に追加したいセルをクリックします。

コード セルの移動
ドラッグ アンド ドロップによって、ノートブック内でセルを上下に移動できます。コード セルの場合、以下に示すように、ドラッグ アンド ドロップの領域はセル エディターの左側にあります。レンダリングされた Markdown セルの場合は、任意の場所をクリックしてセルをドラッグ アンド ドロップできます。

複数のセルを移動するには、選択範囲に含まれる任意のセルの同じドラッグ アンド ドロップ領域を使用できます。
キーボード ショートカットの Alt+矢印キー を使用して、選択した 1 つまたは複数のセルを移動することもできます。
コード セルの削除
コードを削除するには、コード セル ツールバーの 削除 (Delete) アイコンを使用できます。選択したコード セルがコマンド モードの場合、キーボード ショートカット dd を使用できます。

直前の変更を元に戻す
z キーを使用して直前の変更を元に戻すことができます。たとえば、誤って編集してしまった場合に前の正しい状態に戻したり、誤ってセルを削除してしまった場合に復元したりできます。
コードと Markdown の切り替え
Notebook エディターを使用すると、コード セルを Markdown とコードの間で簡単に切り替えることができます。セルの右下にある言語ピッカーを選択すると、Markdown と、選択したカーネルがサポートする他の言語 (該当する場合) を切り替えることができます。

キーボードを使用してセルの種類を変更することもできます。セルが選択され、コマンド モードになっているときに、M キーを押すとセルの種類が Markdown に切り替わり、Y キーを押すとコードに切り替わります。
Markdown に設定すると、コード セルに Markdown 形式のコンテンツを入力できます。

Markdown セルをレンダリングするには、セル ツールバーのチェック マークを選択するか、キーボード ショートカット Ctrl+Enter および Shift+Enter を使用します。


出力のクリアまたはカーネルの再起動/中断
すべてのコード セルの出力をクリアしたり、カーネルを再起動/中断したりする場合は、メインの Notebook エディター ツールバーを使用して実行できます。

行番号の有効化/無効化
コマンド モードのとき、L キーを使用して、単一のコード セル内で行番号の表示/非表示を切り替えることができます。

ノートブック全体で行番号の表示/非表示を切り替えるには、いずれかのセルでコマンド モードのときに Shift+L を使用します。

目次
ノートブック内を移動するには、アクティビティ バーで「エクスプローラー」を開きます。次に、サイドバーで アウトライン (Outline) タブを開きます。

アウトライン ビューのフィルター コントロールを使用して、Markdown ヘッダー、コード セル、およびコード セル シンボルを含めることができます。フィルターは、次の設定に対応しています。
notebook.outline.showMarkdownHeadersOnlynotebook.outline.showCodeCellsnotebook.outline.showCodeCellSymbols
注意: デフォルトでは、アウトラインには Markdown のみが表示されます。コード セルを表示するには、次の設定を有効にします: Notebook > Outline: Show Code Cells。
Jupyter Notebook エディターでの IntelliSense サポート
Python Jupyter Notebook エディター ウィンドウには、コード補完、メンバー リスト、メソッドのクイック情報、パラメーター ヒントなど、完全な IntelliSense が備わっています。コード エディターと同様に、Notebook エディター ウィンドウでも高い生産性で入力作業を行えます。

変数エクスプローラーとデータ ビューアー
Python ノートブック内では、現在の Jupyter セッション内の変数を表示、検査、並べ替え、およびフィルター処理できます。コードやセルを実行した後にメイン ツールバーの 変数 (Variables) アイコンを選択すると、現在の変数の一覧が表示されます。この一覧は、コード内で変数が使用されると自動的に更新されます。変数ペインはノートブックの下部に開きます。


データ ビューアー
変数の詳細情報を確認するには、行をダブルクリックするか、変数の横にある データ ビューアーで変数を表示 (Show variable in data viewer) ボタンを使用すると、データ ビューアーでその変数の詳細なビューを表示できます。

または、Data Wrangler などの他の拡張機能が提供するデータ表示機能を使用することもできます。Data Wrangler 拡張機能は、データに関するインサイトを示す豊富なユーザー インターフェイスを提供し、データのプロファイリング、品質チェック、変換などの実行を支援します。詳細については、ドキュメントの Data Wrangler 拡張機能に関するセクションを参照してください。
行のフィルター処理
データ ビューアーで行をフィルター処理するには、各列の上部にあるテキストボックスに入力します。検索したい文字列を入力すると、その列にその文字列が含まれる行がすべて検出されます。

完全一致を検索する場合は、フィルターの先頭に「=」を付けます。

より複雑なフィルター処理は、正規表現を入力することで行えます。

プロットの保存
ノートブックからプロットを保存するには、出力にホバーして、右上にある 保存 (Save) アイコンを選択するだけです。

注意: matplotlib および Altair で作成されたプロットのレンダリングがサポートされています。
ノートブックのカスタム差分比較
内部的には、Jupyter Notebook は JSON ファイルです。JSON ファイル内のセグメントはセルとしてレンダリングされ、入力、出力、メタデータの 3 つのコンポーネントで構成されています。行ベースの差分比較を使用してノートブックで行われた変更を比較することは難しく、解析が困難です。ノートブック用のリッチな差分エディターを使用すると、セルの各コンポーネントに対する変更を簡単に確認できます。
差分ビューに表示する変更の種類をカスタマイズすることもできます。右上にあるツールバーのオーバーフロー メニュー項目を選択して、含めたいセルのコンポーネントをカスタマイズします。入力の差分は常に表示されます。

VS Code 内の Git 統合の詳細については、VS Code でのソース管理を参照してください。
Jupyter Notebook のデバッグ
Jupyter Notebook をデバッグするには、「ラインごとに実行 (Run by Line)」と呼ばれるよりシンプルなモードと、フル デバッグ モードの 2 つの方法があります。
注意: これら両方の機能には ipykernel 6+ が必要です。ipykernel のインストールまたはアップグレードの詳細については、こちらの Wiki ページを参照してください。
ラインごとに実行
「ラインごとに実行」を使用すると、他の VS Code デバッグ機能に煩わされることなく、セルを 1 行ずつ実行できます。開始するには、セル ツールバーの ラインごとに実行 (Run by Line) ボタンを選択します。

同じボタンを使用して、1 ステートメントずつ進めます。セルの 停止 (Stop) ボタンを選択して途中で停止するか、ツールバーの 続行 (Continue) ボタンを選択してセルの最後まで実行を続けることができます。
セルのデバッグ
ブレークポイントや、他のセルやモジュールへのステップイン機能など、VS Code でサポートされているすべてのデバッグ機能を使用したい場合は、フル機能の VS Code デバッガーを使用できます。
- まず、ノートブック セルの左余白をクリックして、必要なブレークポイントを設定します。
- 次に、実行 (Run) ボタンの横にあるメニューの セルのデバッグ (Debug Cell) ボタンを選択します。これによりデバッグ セッションでセルが実行され、別のセルや
.pyファイル内であっても、実行されるすべてのコード内のブレークポイントで一時停止します。 - VS Code で通常行うのと同様に、「デバッグ」ビュー、「デバッグ コンソール」、および「デバッグ ツールバー」のすべてのボタンを使用できます。
Jupyter Notebook でのセルのデバッグでは、launch.json 内のデバッグ構成は使用されないことに注意してください。代わりに、jupyter.debugJustMyCode などの設定を介してカスタマイズできます。

ノートブック内の検索
キーボード ショートカット Ctrl/Cmd + F を使用して、ノートブック内 (または検索オプションをフィルター処理してその一部) を検索できます。フィルター オプション (漏斗アイコン) をクリックすると、以下を検索対象に含めることができます。
- Markdown セルの入力 (Markdown Source)
- Markdown セルの出力 (Rendered Markdown)
- コード セルの入力 (Code Cell Source)
- コード セルの出力 (Cell Output)
デフォルトでは、ノートブックの検索はセルの入力のみにフィルター処理されています。

リモート Jupyter サーバーへの接続
リモート Jupyter サーバーに接続することで、Jupyter Notebook での負荷の高い計算を他のコンピューターにオフロードできます。接続すると、コード セルはローカル コンピューターではなくリモート サーバー上で実行されます。
リモート Jupyter サーバーに接続するには
-
ノートブックの右上にある [カーネルの選択] ボタンを開きます (または、コマンド パレットから Notebook: ノートブック カーネルの選択 (Notebook: Select Notebook Kernel) コマンドを実行します)。

-
既存の Jupyter サーバー (Existing Jupyter Server) オプションを選択して、既存の Jupyter サーバーに接続します。

-
既存のサーバーに初めて接続する場合は、実行中の Jupyter サーバーの URL を入力 (Enter the URL of the running Jupyter server) を選択します。

-
実行中の Jupyter サーバーの URL を入力 (Enter the URL of the running Jupyter server) というプロンプトが表示されたら、
?token=URL パラメーターで認証トークンを含めたサーバーの URI (ホスト名) を指定します。(認証トークンを有効にして VS Code ターミナルでサーバーを起動した場合、通常、トークン付きの URL がターミナル出力に表示され、そこからコピーできます。) または、URI を指定した後にユーザー名とパスワードを指定することもできます。
注意: セキュリティを高めるため、Microsoft は SSL やトークン サポートなどのセキュリティ対策を講じて Jupyter サーバーを構成することをお勧めします。これにより、Jupyter サーバーに送信される要求が確実に認証され、リモート サーバーへの接続が暗号化されます。ノートブック サーバーの保護に関するガイダンスについては、Jupyter のドキュメントを参照してください。
データ サイエンス プロファイル テンプレート
プロファイル (Profiles) を使用すると、現在のプロジェクトやタスクに応じて、拡張機能、設定、および UI レイアウトをすばやく切り替えることができます。Jupyter Notebook を使い始めるのに役立つ、厳選された便利な拡張機能、設定、スニペットを含むプロファイルである データ サイエンス プロファイル テンプレート (Data Science profile template) を使用できます。プロファイル テンプレートをそのまま使用することも、独自のワークフローに合わせてさらにカスタマイズするための開始点として使用することもできます。
プロファイル テンプレートは、プロファイル > プロファイルの作成... ドロップダウンから選択します。

プロファイル テンプレートを選択したら、設定と拡張機能をレビューし、新しいプロファイルに含めたくない個々の項目を削除できます。テンプレートに基づいた新しいプロファイルを作成した後、設定、拡張機能、または UI に行われた変更はプロファイルに永続化されます。