AnacondaでAI・機械学習・ディープラーニングを始めよう企画の第二弾!Jupyter Notebookの解説記事です!
第一弾はこちら!
機械学習の勉強や仕事で実験をしたとき、普通のプログラムのように端末エミュレータ(俗に言う”黒い画面”です)でコードを走らせて結果をメモって・・・という流れ、非効率的ですよね。
そんなとき、Jupyter Notebookが便利です。Jupyter Notebookを使うことで、実験コード、メモ、実験結果をひとまとめにすることができます!
この記事では
- Jupyter Notebookって何?
- Jupyter Notebookってどうやって使うの?
という基本的なことから
- 便利なExtensionの導入方法
- notebookを別のファイル形式に変換
などの発展的な内容についても解説しますよ!初心者必見!この記事を読んでプロの使う開発環境を自分のものにしちゃいましょう!
なお、Pythonの記事については、こちらにまとめています。
Jupyter Notebookとは?
Jupter Notebookはコード、メモ(markdown, raw text)が一緒のファイルに残せるアプリケーションです。コードの実行結果に当たるログやグラフも一緒に残すことができます。
また、HTMLやLaTeX(ラテフ)もmarkdownと一緒に使うことができます。もうなんでもあり。どんな形式の実験結果でも残しておける便利なアプリケーションなんです!
Jupyter Notebookの使い方
- Windows 10
- Python 3.6
- Jupyter 1.0.0
Jupyter Notebookを起動すると、localhost:8888でJupyter NotebookのWeb UIが立ち上がります。Jupyter notebookはWebブラウザで全ての作業を完結させることができるので、どんなOSでも同様の見た目のUIを使うことができます。
notebookを新規作成するには、右上のNewからNotebookを作りたいプログラミング言語の名前を選択します。素の状態のJupyterであれば、Pythonのみが表示されているはずですので、それをクリックしてください!
すると、上のような画面に移ります。このIn[]:とある枠をセルと呼び、メモやコードを書き込む場所になります。
スクリーンショット画像の中央あたりに書かれているCodeという表示は、選択しているセルのモードによって
- Code
- Markdown
- Raw NBConvert
と表示が変化しますので、自分が使いたいモードに合わせて変えてから使って下さいね。
コード
Jupyter Notebookでは
- Python
- R
- Julia
- その他いろいろ
のようなプログラミング言語を使うことができます。
セルの左側に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では下のようになります。
print(変数)としなくても、変数の中身が確認できるのは便利ですね。グラフも表示してみましょう。
[In [3]:]
plt.plot(random_work)
このコードはmatplotlibの関数でrandom_workの中身をグラフにしています。
この一行で簡単なグラフが作れました。また、%matplotlib notebookというマジックコマンドを使っているので、グラフのサイズを後から変更することもできます。
Markdown
notebookへのメモには、Markdownという簡単なマークアップ言語を使います。Markdownモードのセルを使うには、
- Markdownを使いたいセルを指定してから、キーボードのMキーを押す
- 画面上のWidgetsの下の表示をCodeからMarkdownに変更する
の二通りの方法があります。さて、主要なMarkdownの書き方をまとめました。とりあえずこれだけ、使いこなせると格段に便利になります。
# 見出し ## 見出し2 ### 見出し3 #### 見出し4 普通の文字列 ```python # コードの埋め込み print("test") ``` __文字の強調__ リスト - item1 - item2 - item3
これをnotebookで表示すると、このように文字のスタイルが変更されます。
notebookの中で章を分けたり、コードの解説を載せたりと様々できますね。
Raw NBConvert
Raw NBConvertモードのセルは、書き込んだ内容がそのまま表示されます。改行やスペースなども書いたままに表示されるので、使い所は多そうですね。
Raw NBConvertモードのセルを使うには、
- Markdownを使いたいセルを指定してから、キーボードのRキーを押す
- 画面上のWidgetsの下の表示をCodeからRaw NBConvertに変更する
などの方法があります。試しに適当な文字をこのセルに書いてみました。
このように、ハイライトなどは特にされませんが、思ったままの配置で表示する事ができました。
Jupyter Notebookの応用
notebookをPDFなどに変換
notebookはipynbという拡張子のファイルになっています。これをもっと一般的な拡張子のファイルに変換する機能があるので見てみましょう。
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を追加する画面が追加されます。
この中から好きな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技術を習得しちゃいましょう!