皆さん、こんにちは。
南波真之(なんばさねゆき)と申します。
私はエンジニアではない文系の人間ですが、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の仮想環境上で実施します。
$ python3.9 -m venv venv-test001 $ source venv-test001/bin/activate (venv-test001)$ (venv-test001)$ jupyter notebook |
jupyter notebookと入力、実行すると、ブラウザが立ち上がります。
URLはこのようになります。
http://localhost:8888/notebooks/venv-test001/xxxxxxxx.ipynb
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の仮想環境上で実施すると以下のようになります。
$ source venv-test001/bin/activate (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を使ってデータフレームを出してみる
pandasを使ってDataFrameオブジェクトを作る import pandas as pd df = pd.DataFrame([[100, “a”, True], [200, “b”, False], [300, “c”, True], [400, “d”, True]]) df |
出力は以下のようになりました。しっかりと表のように見えますね。

2.Matplotlibを使って、グラフを出してみる
# 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をクリックすることでカーネルを終了させるようにしましょう。

※JupyterLabでは、Shutdown Kernelになっています。
ターミナルの方を見ると、Kernel shutdownが表示されましたのでこれでOKです。

Jupyterの活用で、Pythonを効率化
いかがでしたでしょうか。
今回は、Pythonをより活用するためのパッケージについて書いてきました。
データ分析に関するパッケージをメインで紹介してきましたが、その他にも多くのパッケージがありますので、ぜひ調べてみてください。
また、今回紹介しましたJupyterLabは、デスクトップアプリとしてもリリースされました。JupyterLab Desktop App now available!
こちらもぜひお試しください。
インターネット・アカデミーは、Python講座が充実しています。Python認定スクールにもなっているため質の高い知識を得ることができ、基礎学習の先にあるそれぞれの目標を目指していくためには良い場所となります。
よく、「プログラミングは独学でもなんとかなる」という情報もありますが、新しいことを学んでいく際の近道は「プロに教えてもらうこと」だと思います。
インターネット・アカデミーはキャリアサポートも充実しており、一人ひとりに専任のキャリアプロデューサーがサポートしてくれるため中途半端になることがありません。
ご興味ある方は各講座のページを覗いてみてください。無料カウンセリングもできます。
- Pythonの基礎からDjangoフレームワークを使ったWebアプリケーションを作りたい方向けの「Python講座」
Pythonを活用したAIプログラミング、機械学習を実装したい方向けの「AIプログラミング講座」