MATLAB,Python,Scilab,Julia比較 その3【概要編③】

MATLAB,Python,Scilab,Julia比較 その3【概要編③】 数値計算
MATLAB,Python,Scilab,Julia比較 その3【概要編③】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia-backnumber/

はじめに

前回はMATLABの概要説明。
自動車業界だとおなじみのツールで値段はお高め。
しかし、homeライセンスというかなりお安めのもある。

今回はPythonへ。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

Python

太郎くん
太郎くん

次はPythonかな。

フクさん
フクさん

Pythonも何度も使ってるから説明いらなくない?

太郎くん
太郎くん

まぁとりあえず簡単やってよ。

フクさん
フクさん

じゃ、これもWikipediaから引用。

Python(パイソン)は、汎用のプログラミング言語である。コードがシンプルで扱いやすく設計されており、C言語などに比べて、さまざまなプログラムを分かりやすく、少ないコード行数で書けるといった特徴がある。

Wikipediaより(https://ja.wikipedia.org/wiki/Python)
フクさん
フクさん

Python version2とverson3は互換性があるようであんまりない。

太郎くん
太郎くん

え?そうなの?

フクさん
フクさん

現在に於いては、特に断りが無ければversion3と思って良いだろう。

Pythonがベクトル、行列に強い?

フクさん
フクさん

さらに注意点としては、
Python自体がベクトル、行列の演算に強い訳じゃない

太郎くん
太郎くん

そっか、
そういえば、ベクトル、行列を扱う場合はNumpyを使うんだっけ。

フクさん
フクさん

というわけでNumpyもWikipediaから引用。

太郎くん
太郎くん

(Numpy単体のページがあるんか。Wikipediaスゲェな)

NumPyは、プログラミング言語Pythonにおいて数値計算を効率的に行うための拡張モジュールである。効率的な数値計算を行うための型付きの多次元配列(例えばベクトルや行列などを表現できる)のサポートをPythonに加えるとともに、それらを操作するための大規模な高水準の数学関数ライブラリを提供する。

Wikipediaより(https://ja.wikipedia.org/wiki/NumPy)
フクさん
フクさん

numpyの内部は環境ネイティブなライブラリになっているので、
演算自体は比較的高速だ。
よって、Python上でfor文で回すより、numpuyでベクトル、行列にした方が圧倒的に処理速度が上がるってのはあるあるだな。

太郎くん
太郎くん

ほう。
つまり、積極的に利用した方がお得ってことか。

フクさん
フクさん

そのためには処理したい内容をベクトル、行列で表現し直す必要はあるけどね。

太郎くん
太郎くん

うーん、そこは追々理解していこう・・・。

費用とか

太郎くん
太郎くん

Pythonはオープンソースで無料使用可能って認識だけど、それであってる?

フクさん
フクさん

まぁおおよそ合ってはいるが、
パッケージ別にライセンスが決められてるから、油断するとライセンス違反になることはあるな。

太郎くん
太郎くん

まじか。

フクさん
フクさん

あと、パッケージメンテナとしてAnacondaってのがあって、
簡単にいろんなパッケージのインストールや管理ができる上、
Anaconda内に個別の環境を作れるんで、実験用環境インストールパッケージ環境ってもの作れる。

太郎くん
太郎くん

それは便利だ。

フクさん
フクさん

問題はライセンス。
従業員が200人以上の企業で利用する場合は有償になる。
費用は問い合わせないと分からないが、15[$/月]程度らしい。

太郎くん
太郎くん

それはまた分かり難いライセンスが…。

フクさん
フクさん

個人で実験する分には問題無いが、
会社で利用する場合は要注意ってことなるな。
まぁ我々が使う範囲だと特殊なライブラリになるから、pipでインストールするしかないこと多い。
よって、あまり関係無いかもしれなけど。

太郎くん
太郎くん

たしかにpipくらいしか使ったことないな・・・。
でも、要注意ってのは変わらないな。

まとめ

フクさん
フクさん

まとめだよ。

  • Pythonの概要。
  • PythonというかNumpyがベクトル、行列に強い。
    • for文で回すよりベクトル、行列として演算させた方が圧倒的に速くなることは多い。
  • Python自体は無料と思って良いが、パッケージ別にライセンスが規定されてるので要注意。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました