バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia-backnumber/
はじめに
前回はMATLABの概要説明。
自動車業界だとおなじみのツールで値段はお高め。
しかし、homeライセンスというかなりお安めのもある。
今回はPythonへ。
登場人物
博識フクロウのフクさん
![指差しフクロウ](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
![技術者太郎](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
Python
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
次はPythonかな。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/はてなフクロウ.png)
Pythonも何度も使ってるから説明いらなくない?
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
まぁとりあえず簡単やってよ。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
じゃ、これもWikipediaから引用。
Python(パイソン)は、汎用のプログラミング言語である。コードがシンプルで扱いやすく設計されており、C言語などに比べて、さまざまなプログラムを分かりやすく、少ないコード行数で書けるといった特徴がある。
Wikipediaより(https://ja.wikipedia.org/wiki/Python)
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
Python version2とverson3は互換性があるようであんまりない。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
え?そうなの?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
現在に於いては、特に断りが無ければversion3と思って良いだろう。
Pythonがベクトル、行列に強い?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
さらに注意点としては、
Python自体がベクトル、行列の演算に強い訳じゃない。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者02アップ.png)
そっか、
そういえば、ベクトル、行列を扱う場合はNumpyを使うんだっけ。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
というわけでNumpyもWikipediaから引用。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
(Numpy単体のページがあるんか。Wikipediaスゲェな)
NumPyは、プログラミング言語Pythonにおいて数値計算を効率的に行うための拡張モジュールである。効率的な数値計算を行うための型付きの多次元配列(例えばベクトルや行列などを表現できる)のサポートをPythonに加えるとともに、それらを操作するための大規模な高水準の数学関数ライブラリを提供する。
Wikipediaより(https://ja.wikipedia.org/wiki/NumPy)
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
numpyの内部は環境ネイティブなライブラリになっているので、
演算自体は比較的高速だ。
よって、Python上でfor文で回すより、numpuyでベクトル、行列にした方が圧倒的に処理速度が上がるってのはあるあるだな。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者02アップ.png)
ほう。
つまり、積極的に利用した方がお得ってことか。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
そのためには処理したい内容をベクトル、行列で表現し直す必要はあるけどね。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
うーん、そこは追々理解していこう・・・。
費用とか
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
Pythonはオープンソースで無料使用可能って認識だけど、それであってる?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/考え中フクロウ.png)
まぁおおよそ合ってはいるが、
パッケージ別にライセンスが決められてるから、油断するとライセンス違反になることはあるな。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
まじか。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
あと、パッケージメンテナとしてAnacondaってのがあって、
簡単にいろんなパッケージのインストールや管理ができる上、
Anaconda内に個別の環境を作れるんで、実験用環境インストールパッケージ環境ってもの作れる。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
それは便利だ。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/考え中フクロウ.png)
問題はライセンス。
従業員が200人以上の企業で利用する場合は有償になる。
費用は問い合わせないと分からないが、15[$/月]程度らしい。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
それはまた分かり難いライセンスが…。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
個人で実験する分には問題無いが、
会社で利用する場合は要注意ってことなるな。
まぁ我々が使う範囲だと特殊なライブラリになるから、pipでインストールするしかないこと多い。
よって、あまり関係無いかもしれなけど。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
たしかにpipくらいしか使ったことないな・・・。
でも、要注意ってのは変わらないな。
まとめ
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
まとめだよ。
- Pythonの概要。
- PythonというかNumpyがベクトル、行列に強い。
- for文で回すよりベクトル、行列として演算させた方が圧倒的に速くなることは多い。
- Python自体は無料と思って良いが、パッケージ別にライセンスが規定されてるので要注意。
バックナンバーはこちら。
コメント