emoiの日記

忘れっぽい雑食系エンジニアのメモblogです。仮想通貨とROSに興味があります。

Python開発環境 Jupyter Notebook の紹介

前回の記事において、bot作りを始めるにあたり、udemyの動画講座「Rubyで作る! ビットコイン自動売買システム」を参考にしたことを述べました。
今回は現在も使っているPython開発環境 Jupyter Notebook の紹介をします。


動画講座で紹介されているRubyを使って、引き続きbot開発をするのは以下のモチベーションがありました。

しかしここで頭をよぎったのは、

  • 過去データを扱いだしたら、numpyやpandasが便利そう
  • matplotlibで手軽にお絵かきしたい
  • 機械学習やりたくなったらどうしよう

というわけでPythonに移行することにしました。


まずは以下を参考にローカルにanacondaを使ってPython環境をセットアップしました。
ちなみに私の環境はUbuntu16.04です。
qiita.com


最も簡単にPythonを使うには、ターミナルで起動してみることです。

$ python3
Python 3.6.0 |Anaconda custom (64-bit)| (default, Dec 23 2016, 12:22:00) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

以下のようにターミナル上でPythonを扱うことができます。

>>> 1+1
2
>>> print('Hello world')
Hello world
>>> 

f:id:r17u:20171123224112p:plain
もちろん .py でテキストファイルを保存すればスクリプトとして使えます。


ターミナル上でのプログラミングの実行はシンプルでよいのですが、
データを可視化するときに難があります。
最もオーソドックスなのは.csv形式で吐き出してエクセルで表示する方法でしょうか。
ただそのためだけに別のアプリケーションを立ち上げるのは面倒くさいですよね?

そこでオススメしたいのがJupyter Notebookです。
anacondaを使ってPythonをインストールしたならば標準で入っているツールです。
端末に以下を入力したら立ち上がります。

$ jupyter notebook 

f:id:r17u:20171123225648p:plain

さきほどターミナルで行った簡単な計算と文字表示はこのようになります。
プログラムの途中にキャプションを入れることができるので、一気に見やすくなったと思います。
f:id:r17u:20171123225750p:plain

Jupyter Notebookで書いたプログラムは.py形式で保存可能です。キャプションはコメント化されます。
f:id:r17u:20171123230050p:plain

次は簡単な関数をプロットしてみましょう。

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y  = np.sin(x)
plt.plot(x, y)

f:id:r17u:20171123225940p:plain
たった6行です。エクセルを立ち上げる必要もありません。

慣れてくる以下のような図もかけるようになります。
上は過去6時間のBTC値動き、
左下は過去24時間のBTC値動き、右下はそのヒストグラムです。
https://twitter.com/btcpython/status/933697394503450625
f:id:r17u:20171123231058j:plain


最後に私がJupyter Notebookに触れたきっかけである書籍を紹介します。
全15章あるなかで、特に以下の章が印象に残っております。

6章 先進的ビジュアライゼーション
7章 統計データ解析

もともとJupyter Notebook は IPython Notebook というプロジェクト名でした。
名前は変わっておりますが、内容自体は今でも参考になります。


今回の記事は以上になります。
次回はCloud9上でJupyterNotebookを動かしてみた事例を紹介します。