pythonとOctaveの使い分け

前回の記事でOctaveの紹介をしました.

kedarumasan.hatenablog.com


でもこの内容を見て,別にOctaveなんか使わなくてもpython(numpy, matplotlib)で似たようなことできるのに...と思われる方も多いと思います.確かにそうなんですが個人的には数値計算にはOctave,計算以外の処理やツール開発等はpythonという風に使用用途を分けています.

数値計算pythonを使わない大きな理由は下記の2つがあります.

  • インデックス問題
  • pythonの記法(np.array,plt.figure)

 インデックス問題

まずはインデックス問題です.問題といってもこればっかりは言語仕様なのでどうしようもないのですが,pythonのインデックスは0始まり,Octaveのインデックスは1始まりなのです.行列計算とかをする上でインデックスが異なるのはものすごく混乱します.ずっと1始まりのインデックスを使ってきた身として0始まりに変わり身することはできませんでした...

 

pythonの記法(np.array,plt.figure)

もう一つはpythonの記法です.python数値計算やグラフ描画をするならnumpyやmatplotlibをimportして,それぞれnp,pltとして使用するのが必須と思います.そうすると必然的にコードの中にはnp.arrayとかplt.figureとかが羅列されるわけですが,どうにも一文一文が長くなる感じがして嫌でした.Octaveの場合は特に何もimportする必要がないので,よりシンプルでスッキリとしたコードに落ち着きます.これはOctaveが科学計算に特化した言語である特権ですね.pythonの思想は「短いコードで書く」というよりは「誰が見てもわかりやすいコードで書く」というスタンスだと思うので仕方がないのだと思います.

ちなみにmatplotlibで作成できるグラフは見た目,操作性含めOctaveと同等と感じたのでものすごく良いと思っています.

 

AIや機械学習用に最適な言語は?

最後に余談ですが,最近ではAIや機械学習用の言語としてもpythonOctave(Matlab)のどれが良いのかといった話題が出ることがあります.一例として,機械学習の権威であるAndrewNg先生は最初に手を出す言語としてはOctaveが最適だと話していて,自身のCourseraの講義の中でもOctaveを使った課題を出したりしています.

ただ,あくまで最初の取っ掛かりとしてはOctaveが良いというだけで,色々と学んだ後には自分の好きな使いやすい言語でコードを書けば良いとも言っています.当たり前ですが結局は自分の好みですよね.どの言語が自分にとって使いやすいのか,用途に合っているのかを判断するためにも色々な言語に触れてみるのも良いかもしれませんね.