Jupyter Notebookをしっかり理解する
執筆者:南波真之
※本記事は吉政創成株式会社「Python学習とキャリアアップ」より寄稿されたコラムとなります。

皆さん、こんにちは。南波真之(なんばさねゆき)と申します。
私はエンジニアではない文系の人間ですが、Pythonの可能性やデータ分析を使った仕事に興味があります。前回はPythonの環境構築について、学んできました。PCにPythonをインストールし、pipによるパッケージ管理と実際にインストールしたパッケージを使ったテストコードの実行をしました。
今回は、Pythonを扱う上でほぼ利用する「Jupyter Notebook」について勉強していきます。
Pythonによるあたらしいデータ分析の教科書(翔泳社)では、P.43〜P.50の部分になります。
Jupyter Notebookとは?
Jupyter Notebookは、ウェブブラウザ上でPythonなどのコードを実行できる環境のことで、データ分析でよく使われます。
ブラウザ上でPythonのコードを実行することで、すぐに結果を得ることができます。
もともとは、IPython Notebookという名前のツールだったものを汎用化させたもので、Jupyterという名前も、対応言語のJulia + Python + R言語から取られています。
このJupyter Notebookがなぜデータ分析で利用されることが多いのかというと、1つは見やすさが優れている点があります。

例えば、通常のようにコードを記載できることに加えて、マークダウン記法でドキュメントを記載することも可能です。
試しに、画面を見てみますと、こののようになります。
コードとマークダウン記法両方それぞれ記述しました。とても見やすいですよね。
Jupyter Notebookの使い方
それでは実際に、インストールをして起動していきます。
※venvの仮想環境上で実施します。
jupyter notebookと入力、実行すると、ブラウザが立ち上がります。
URLはこのようになります。
Newの中のPython3を選択して開始しましょう。すると、入力する画面が出来上がります。この入力部分をセルといいます。Python3のコードを書いて実行する準備が出来上がりました。
ちなみに、URLを見て分かるように、.ipynbという拡張子のファイルに保存されるようになります。
Notebookのファイルは、JSON形式で記述されています。試しに先程記述したコード部分がどうなっているのかをファイルダウンロードしてみてみます。
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"[6, 5, 4]"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drinks = ['coffee', 'water', 'milk']\n",
"lens = []\n",
"for drink in drinks:\n",
" lens.append(len(drink))\n",
"lens"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Jupyter Notebookの練習\n",
"\n",
"### Pythonが実行できるか \n",
JSON形式になっていますね。
便利なJupyter Notebookショートカット
1.実行:Ctrl + Enter

プログラムやマークダウンで記入したあとに実行をさせる場合は、この「Run」ボタンを押す必要があります。そこで、Ctrl + Enterのショートカットを使うことで効率化しましょう。
2.次のセルを下に追加:Shift + Enter

次のセルを作りたい場合「+」ボタンを押す必要があります。しかし、面倒ですのでShift + Enterでショートカットしましょう。
3.セルの削除:セルを選択して、「D」を2回
セル自体を削除したい場合には、Editメニューから、「Delete Cells」をクリックする必要がありますが、面倒ですのでセルを選択して「D」のキーを2回押しましょう。Vimで行を削除すると同じですね。
JupyterLabとは?
Jupyter Notebookの他に、JupyterLabというものもあります。JupyterLabとは、Jupyter Notebookの後継という立ち位置にあり、拡張性が高まった統合開発環境(IDE)になっているようです。
今後は、こちらのJupyterLabを利用することになりそうです。
起動はかんたんで、ターミナルにてjupyter-labコマンドを実行するだけです。
jupyter notebookコマンドで起動したときのように、venvの仮想環境上で実施すると以下のようになります。
(venv-test001)$
(venv-test001)$ jupyter-lab

すると、ブラウザが開き、画面が表示されます。
Jupyter Notebookとはまた見た目が違いますね。同じようにPython3を選択し、Numpyをインポートして単位行列を作ってみます。
更に、マークダウン記法でテキストを記述してみます。
こちらはJupyter Notebookとほぼ同じですね。
また、JupyterLabのファイル(.ipynb)、通常のPythonファイル(.py)、そしてターミナルをこのように画面上で配置することもできますので、JupyterLabの方が多機能と言えますね。
Jupyter Nnotebook(JupyterLab)で
Python3を実行してみる
それでは、次にJupyter Notebookを使ってPython3のコードをいくつか実行してみましょう。表やグラフの場合の見え方を確認してみます。
1.Pandasを使ってデータフレームを出してみる
import pandas as pd
df = pd.DataFrame([[100, "a", True],
[200, "b", False],
[300, "c", True],
[400, "d", True]])
df

出力はこのようになりました。しっかりと表のように見えますね。
2.Matplotlibを使って、グラフを出してみる
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
# グラフの描画
ax.plot([1, 3, 5], [1, 9, 25], label='Test line graph')
ax.legend(loc='best')
# グラフの表示
plt.show()

グラフになってきれいに描画されました。このような形で、Jupyter Notebookでコードを実行するとグラフの描画もきれいにされることがわかりました。
とても便利ですね。
注意点

Jupyter Notebook(JupyterLab)で実行をした際に、"Kernel Restarting"というアラートが出ることがあります。カーネルとはセルの処理を行うためのもので、カーネルが動かないと処理が完了できずにアラートになってしまいます。
私も困ったので調べてみたところ、利用するメモリが足りずにカーネル自体が止まってしまうという状況が多いようでした。そこで、メモリに余裕を作る、メモリの上限を上げるといった対応をすることでこの現象は回避できるようです。
また、Jupyter Notebook(JupyterLab)で利用しているファイルは、そのままではカーネルが実行中のため単にブラウザ上で閉じただけでは、ノートブック自体は動作している状態になっています。

ファイル一覧画面で見ると、右側に "Running"と書いてあります。

該当ファイルに入ってKernelからShutdownをクリックすることでカーネルを終了させるようにしましょう。

ターミナルの方を見ると、Kernel shutdownが表示されましたのでこれでOKです。
Jupyterの活用で、Pythonを効率化
いかがでしたでしょうか。今回は、Pythonをより活用するためのパッケージについて書いてきました。
データ分析に関するパッケージをメインで紹介してきましたが、その他にも多くのパッケージがありますので、ぜひ調べてみてください。
また、今回紹介しましたJupyterLabは、デスクトップアプリとしてもリリースされました。こちらもぜひお試しください。JupyterLab Desktop App now available!
インターネット・アカデミーは、Python講座が充実しています。Python認定スクールにもなっているため質の高い知識を得ることができ、基礎学習の先にあるそれぞれの目標を目指していくためには良い場所となります。ご興味ある方は各講座のページを覗いてみてください。
南波真之
デジタル人材育成・助成金のお役立ち資料をダウンロード

デジタル人材育成や助成金活用のお役立ち資料などをまとめてダウンロードしていただけます。コンサルタントへの無料相談をご希望の方はこちらからお問い合わせください。
- DX人材の育成&事例紹介 リスキリングのロードマップ付き
- デジタル人材育成に使える助成金制度
- デジタルスキル標準 役割別おすすめ講座