VS Code での Jupyter Notebook
Jupyter (旧 IPython Notebook) は、Markdown テキストと実行可能な Python ソースコードを「**ノートブック**」と呼ばれる 1 つのキャンバスに簡単に結合できるオープンソースプロジェクトです。Visual Studio Code は、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: Select Interpreter** コマンドを使用します。
適切な環境がアクティブになると、Jupyter Notebook を作成して開き、リモート Jupyter サーバーに接続してコードセルを実行し、Jupyter Notebook を Python ファイルとしてエクスポートできます。
ワークスペースの信頼
Jupyter Notebook を使い始めるときは、信頼できるワークスペースで作業していることを確認する必要があります。有害なコードがノートブックに埋め込まれる可能性があり、ワークスペースの信頼機能を使用すると、どのフォルダーとそのコンテンツが自動コード実行を許可または制限するかを示すことができます。
VS Code が信頼されていないワークスペースで制限モードで実行されているときにノートブックを開こうとすると、セルを実行できず、リッチな出力は非表示になります。
Jupyter Notebook を作成または開く
Jupyter Notebook は、コマンドパレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) から **Create: New Jupyter Notebook** コマンドを実行するか、ワークスペースに新しい .ipynb ファイルを作成することで作成できます。

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

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

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

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

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

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

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

コマンドモードでは、セルの左側に実線の垂直バーが表示されます。セルは操作でき、キーボードコマンドを受け入れます。

編集モードでは、実線の垂直バーがセルのエディターの周りの境界線に結合されます。セルのコンテンツ (コードまたは Markdown) を変更できます。

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

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

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

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

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

キーボードを使用してセルタイプを変更することもできます。セルが選択されていてコマンドモードの場合、M キーはセルタイプを Markdown に切り替え、Y キーはセルタイプをコードに切り替えます。
Markdown が設定されると、Markdown 形式のコンテンツをコードセルに入力できます。

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


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

行番号を有効/無効にする
コマンドモードの場合、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 をデバッグする方法には、「行ごとの実行」と呼ばれるシンプルなモードと、完全なデバッグモードの 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: Select Notebook Kernel** コマンドを実行)、

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

-
初めて既存のサーバーに接続するには、**Enter the URL of the running Jupyter server** を選択します。

-
**Enter the URL of the running Jupyter server** のプロンプトが表示されたら、サーバーの URI (ホスト名) を、`?token=` URL パラメーターで認証トークンを含めて提供します。(VS Code ターミナルで認証トークンを有効にしてサーバーを起動した場合、トークンを含む URL は通常、コピーできるターミナル出力に表示されます)。あるいは、URI の後にユーザー名とパスワードを指定することもできます。

**注:** セキュリティを強化するために、Microsoft は Jupyter サーバーを SSL やトークンサポートなどのセキュリティ対策で構成することを推奨しています。これにより、Jupyter サーバーに送信されるリクエストが認証され、リモートサーバーへの接続が暗号化されます。ノートブックサーバーの保護に関するガイダンスについては、Jupyter ドキュメントを参照してください。
データサイエンスプロファイルテンプレート
プロファイルを使用すると、現在のプロジェクトやタスクに応じて、拡張機能、設定、UI レイアウトをすばやく切り替えることができます。Jupyter Notebook の使用を開始するには、便利な拡張機能、設定、スニペットが厳選されたプロファイルであるデータサイエンスプロファイルテンプレートを使用できます。プロファイルテンプレートはそのまま使用することも、独自のワークフローに合わせてさらにカスタマイズするための開始点として使用することもできます。
プロファイルテンプレートは、プロファイル > プロファイルの作成... ドロップダウンから選択します。

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