初心者必見!データサイエンスにオススメのJupyter Notebookとは?

AnacondaでAI・機械学習・ディープラーニングを始めよう企画の第二弾!Jupyter Notebookの解説記事です!

第一弾はこちら!

機械学習の勉強や仕事で実験をしたとき、普通のプログラムのように端末エミュレータ(俗に言う”黒い画面”です)でコードを走らせて結果をメモって・・・という流れ、非効率的ですよね。

そんなとき、Jupyter Notebookが便利です。Jupyter Notebookを使うことで、実験コード、メモ、実験結果をひとまとめにすることができます!

この記事では

  • Jupyter Notebookって何?
  • Jupyter Notebookってどうやって使うの?

という基本的なことから

  • 便利なExtensionの導入方法
  • notebookを別のファイル形式に変換

などの発展的な内容についても解説しますよ!初心者必見!この記事を読んでプロの使う開発環境を自分のものにしちゃいましょう!

なお、Pythonの記事については、こちらにまとめています。

目次

Jupyter Notebookとは?

jupyter_notebook1

引用元:jupyter https://jupyter.org/

Jupter Notebookはコード、メモ(markdown, raw text)が一緒のファイルに残せるアプリケーションです。コードの実行結果に当たるログやグラフも一緒に残すことができます。

jupyter_notebook3

 

また、HTMLやLaTeX(ラテフ)もmarkdownと一緒に使うことができます。もうなんでもあり。どんな形式の実験結果でも残しておける便利なアプリケーションなんです!

Jupyter Notebookの使い方

jupyter_notebook2

画像:Jupyter NotebookのWeb UI

[この記事を書く際に使っている環境]

  • Windows 10
  • Python 3.6
  • Jupyter 1.0.0

Jupyter Notebookを起動すると、localhost:8888でJupyter NotebookのWeb UIが立ち上がります。Jupyter notebookはWebブラウザで全ての作業を完結させることができるので、どんなOSでも同様の見た目のUIを使うことができます。

jupyter_notebook4

notebookを新規作成するには、右上のNewからNotebookを作りたいプログラミング言語の名前を選択します。素の状態のJupyterであれば、Pythonのみが表示されているはずですので、それをクリックしてください!

jupyter_notebook5

すると、上のような画面に移ります。このIn[]:とある枠をセルと呼び、メモやコードを書き込む場所になります。

スクリーンショット画像の中央あたりに書かれているCodeという表示は、選択しているセルのモードによって

  • Code
  • Markdown
  • Raw NBConvert

と表示が変化しますので、自分が使いたいモードに合わせて変えてから使って下さいね。

コード

Jupyter Notebookでは

  • Python
  • R
  • Julia
  • その他いろいろ

のようなプログラミング言語を使うことができます。

jupyter_notebook6

セルの左側にIn []:と表示されている場合、コードを書き込み実行するためのモードになっています。ここにPythonコードを書いてみましょう。

[In [1]:]

%matplotlib notebook
import numpy as np
import matplotlib.pyplot as plt

ここでは、必要なライブラリをimportしています。先頭の行ではJupyterのマジックコマンドを使っています。

%はその行をマジックコマンドとして認識します。%%はそのセル全体をマジックコマンドとして認識します。

[In [2]:]

x = np.random.randint(2, size=1000)*2.0-1.0
random_work = np.cumsum(x)+10

random_work

このセルはランダムウォークのコードになります。最後の行のrandm_workは、この変数の値をnotebookに表示するためのコードです。実際のnotebookでは下のようになります。

jupyter_notebook7

print(変数)としなくても、変数の中身が確認できるのは便利ですね。グラフも表示してみましょう。

[In [3]:]

plt.plot(random_work)

このコードはmatplotlibの関数でrandom_workの中身をグラフにしています。

jupyter_notebook8

この一行で簡単なグラフが作れました。また、%matplotlib notebookというマジックコマンドを使っているので、グラフのサイズを後から変更することもできます。

Markdown

notebookへのメモには、Markdownという簡単なマークアップ言語を使います。Markdownモードのセルを使うには、

  • Markdownを使いたいセルを指定してから、キーボードのMキーを押す
  • 画面上のWidgetsの下の表示をCodeからMarkdownに変更する

jupyter_notebook12

の二通りの方法があります。さて、主要なMarkdownの書き方をまとめました。とりあえずこれだけ、使いこなせると格段に便利になります。

# 見出し
## 見出し2
### 見出し3
#### 見出し4
普通の文字列
 
```python
# コードの埋め込み
print("test")
```
 
__文字の強調__
 
リスト
- item1
- item2
- item3

これをnotebookで表示すると、このように文字のスタイルが変更されます。

jupyter_notebook9

notebookの中で章を分けたり、コードの解説を載せたりと様々できますね。

Raw NBConvert

Raw NBConvertモードのセルは、書き込んだ内容がそのまま表示されます。改行やスペースなども書いたままに表示されるので、使い所は多そうですね。

Raw NBConvertモードのセルを使うには、

  • Markdownを使いたいセルを指定してから、キーボードのRキーを押す
  • 画面上のWidgetsの下の表示をCodeからRaw NBConvertに変更する

jupyter_notebook10

などの方法があります。試しに適当な文字をこのセルに書いてみました。

jupyter_notebook11

このように、ハイライトなどは特にされませんが、思ったままの配置で表示する事ができました。

Jupyter Notebookの応用

notebookをPDFなどに変換

notebookはipynbという拡張子のファイルになっています。これをもっと一般的な拡張子のファイルに変換する機能があるので見てみましょう。

jupyter_notebook13

notebookの左上のFile→Download as→変換したいファイルの種類を選択、の流れでファイルを変換することができます。PDFやHTMLなどに変換することができる他、普通のpythonのファイルにも変換できるのでぜひ使ってみてください。

Jupyter Extensions

Jupyter Notebookには、より便利にカスタマイズするためのExtensionが多数あります。AnacondaでJupyterを使っている場合は、Terminalから以下のコマンドを実行することでExtensionを使えるようになります。

conda install -c conda-forge jupyter_contrib_nbextensions

それ以外のPythonの場合は、pipコマンドでインストールしましょう。

pip install jupyter_contrib_nbextensions

これによってJupyter Notebookに、Extensionを追加する画面が追加されます。

jupyter_notebook14

この中から好きなExtensionを追加してみてください。この記事の作成時には、Live Markdown Previewを試してみました。

これを使うことで、リアルタイムにMarkdownの結果が反映されます。

まとめ

この記事では、Jupyter Notebookの使い方を紹介しました。Jupyter Notebookはデータサイエンスや機械学習だけでなく、Pythonの勉強やプログラミングの際に非常に便利なツールです。

このツールを使って機械学習やPythonの教材を提供している書籍もたくさんあります。是非モダンな開発環境を使いこなして、Pythonをマスターしてください!

また、PythonやAI・機械学習・ディープラーニングの勉強なら、侍エンジニアのマン・ツー・マンレッスンがオススメです。

[su_button url=”https://lp.sejuku.net/lp1_blog_01/?cid=ai_btn1_59437″ target=”blank” background=”#409fdf” color=”#fff88f” size=”10″ center=”yes” radius=”10″ icon=”icon: external-link” icon_color=”#fff88f” text_shadow=”0px 0px 10px #808080″]侍エンジニアとは?
詳細はこちらから[/su_button]

侍エンジニアのマン・ツー・マンレッスンで、仕事の後や家事の合間にプログラミングを勉強してみませんか?ここで紹介したようなツールを使って、インストラクターと一緒に最新のAI技術を習得しちゃいましょう!

この記事を書いた人

第一言語はPythonです。
皆さんRustやりましょう。

目次