連載
» 2018年06月12日 05時00分 公開

VS CodeからJupyter Notebookを使ってみようVisual Studio Codeで始めるPythonプログラミング(2/3 ページ)

[かわさきしんじ,Insider.NET編集部]

サンプルコードを実行してみよう

 準備が整ったら、Jupyter拡張機能の説明ページにあるサンプルコードを実行してみよう。ここではjupytertestディレクトリを作り、その下にtest.pyファイルを作成して、そこにこのコードを記述している。

#%%
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np

x = np.linspace(0, 20, 100)
plt.plot(x, np.sin(x))
plt.show()

サンプルコード

 先頭行の「#%%」は、Jupyter Notebookにおける「セル」の区切りを示すもので、これで区切られた領域が1つの実行単位となる。そのため、この行の上には[Run cell]というリンクが表示されている。

[Run cell]リンクをクリックすると、そのセルの内容が実行される [Run cell]リンクをクリックすると、そのセルの内容が実行される

 また、以下のように「#%%」で区切ってprint関数呼び出しを記述すると、これは2つのセルを含んだコードとなる。

2つのセルで構成されるコード 2つのセルで構成されるコード

 では、1つ目の[Run cell]リンクをクリックしてみよう。すると、次のようにJupyter Notebookを新規に起動するか、既に起動されているJupyter Notebookを指定するかの選択画面が表示される。

[Start a new notebook]を選んで新規にJupyter Notebookを起動する [Start a new notebook]を選んで新規にJupyter Notebookを起動する

 ここでは[Start a new notebook]を選択する。すると、必要なパッケージがインストールされていれば、先頭のセルの内容が実行されて、次のように別のエディタに実行結果が表示される。されない場合には、condaコマンドあるいはpipコマンドで足りないものをインストールしよう。

実行結果の表示 実行結果の表示

 このときに「Failed to Detect Jupyter Notebook」のようなメッセージが表示されたら、コマンドパレットから[Jupyter: Select an existing (local) Jupyter Notebook]コマンドを選択して、起動しているJupyter Notebookの中のいずれかを選択してから実行するとうまく実行できるかもしれない(Jupyter Notebookのインスタンスの選択については後述)。

 ここで覚えておいてほしいのが、ステータスバーに表示されている[Python 3 Kernel (idle)]という表示だ。Kernel(カーネル)とは、ある言語のコードを実行するためのエンジンであり、上の画像ではVS Codeから起動されたJupyter Notebookのインスタンス上でPython 3のカーネルが実行されている(が、アイドル状態にある)ことが分かる。

 2つ目の[Run cell]リンクをクリックすれば、その結果がグラフの下に表示される。

print関数呼び出しの実行結果がグラフの下に表示されたところ print関数呼び出しの実行結果がグラフの下に表示されたところ

 Pythonコードを表示しているエディタを右クリックすると、さらに細かく実行を制御できる。

Jupyter Notebook関連のコンテキストメニュー項目 Jupyter Notebook関連のコンテキストメニュー項目

 上に示したコンテキストメニューには、Jupyter拡張機能が提供するメニュー項目として以下のものが表示されている。

  • [Run Cell]:右クリックした位置にあるセルの内容を実行する
  • [Run Cell and Advance]:右クリックした位置にあるセルの内容を実行して、次のセルにカーソルを移動する
  • [Run Selection/Line]:選択範囲あるいは現在行だけを実行する
  • [Go to Next Cell]:次のセルに移動する
  • [Go to Previous Cell]:前のセルに移動する

 連続するセルの内容を続けて実行したいときには、[Run Cell and Advance]が便利に使えるはずだ。また、セル内で特定の範囲だけをテストしたいというときには、[Run Selection/Line]が有用だ。[Go to Next Cell]と[Go to Previous Cell]はセル単位でカーソルを前後に移動する。

 例えば、以下のようにhello関数を定義して、それを呼び出すセルを書いたとする。そして、このセル全体を実行しないまま、hello関数呼び出しを実行してみる(これは使い方としては間違っている例だ)。

現在行だけを実行 現在行だけを実行

 すると、次のようにエラーが発生する。

hello関数を定義していないのでNameErrorが発生する hello関数を定義していないのでNameErrorが発生する

 例として間違った使い方を見てみたが、実際には関数定義とその呼び出しを別のセルに分けておき、関数定義を修正してからそのセルを実行、さらに関数呼び出しのセルを続けて実行のような使い方をすることで、細かなコードの修正とそのテストをインタラクティブな環境で簡単に行える。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。