Jupyter Notebook

Pythonという言語を使ってデータ解析をするとき、また人工知能の学習・評価によく使われるツールです。
ここではこのようなブログラミングスタイルを学ぶことを目的に紹介したいと思います。

Jupyter Notebookは、小さな単位のプログラムの入力とその結果表示を繰り返すような、コンピュータと対話するようにプログラミングをすることができます。このようなスタイルはプログラムを部分的に試してみたり、戻ってやり直したりが簡単にできることから、用途によってよく使われれます。(REPL (Read-Eval-Print Loop) とよばれさまざなな種類があります)
このJypyter Noteが注目されるのは、やはりAIに強いPythonが使えるということもありますが、ユーザーインターフェイスが優れているからだとおもいます。(プログラム結果として画像やグラフを出力できます)
ここではRaspberryPiにインストールしたものを使い、簡単な配列操作をしてみました。


まずは100個の整数の配列を作ります。
printで中身を表示し、shapeでデータの構造を確認します。1次元の配列ですね。
そしてplotでグラフ表示をしてみます。

In[6]では、データを2乗しました。ここで注目は、配列のデータの演算にループ構文を作って、その中で計算をしていないことです。配列を一つずつ取り出した結果を演算対象にすることを式として表しています。(イテレータといいます)
配列の変数に添字(インデックス番号)がないのはそのためです。
これがデータ処理をシンプルに書くしくみです。

In[8]ではIn[6]に条件分岐を追加しています。(三項演算子に相当します)
5000より少ないときは、そのままで、それ以外は 0 にしています。

一回一回プログラムを修正しながら進めていくことができます。
グラフだとあまり面白みがないかもしれませんが、画像データの加工などで何度も変数を変えながら結果を確認するときなど便利です。
これはまたの機会に試したいと思います。

今回、RaspyberryPi3にインストールしましたが、そのとき参考にしたサイトは以下です。

https://qiita.com/optimisuke/items/1bd670bc84f264024d5d
https://groups.google.com/forum/#!topic/comp.lang.python/_nuF8vl1BcY
https://qiita.com/XM03/items/48463fd910470b226f22

パッケージのバージョンが合わないとうまく起動しないのですが、ここではこの記事の目的とははなれるため詳しくは省略いたします。