バックナンバーはこちら。
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自体は無料と思って良いが、パッケージ別にライセンスが規定されてるので要注意。
バックナンバーはこちら。
コメント