Python
scipy
numpy

Pythonで数学・科学技術計算を扱う上で必要なツールやライブラリについて簡単にまとめてみる

More than 1 year has passed since last update.

この記事は、 BRIGHT VIE Advent Calendar 2017 - Qiita 21日目の記事になります。


はじめに

弊社でも蓄積しているデータを分析したり可視化したり、また機械学習を用いたデータの活用に最近取り組んでおりますが、

私自身大学時代に最適化関連の分野に取り組んでいたときに少しだけPythonを触った程度なので、

改めてしっかり勉強してみようと思い、まずは基礎中の基礎から取り組んでいくことにしました。

今日は、「名前は聞いたことあるけど何それ...」を解消するために、

利用するツールやライブラリについて簡単にですがまとめてみました。


利用するツールやライブラリについて簡単なまとめ


PyCharm

「JetBrains」が出している高品質なIDEで、「Widows/OS X/Linux」で動作可能なPython向けのIDEです。IDEツールなのでお好きなものを使うのが良いと思いますが、Pythonを扱ったり初心者には優しいようです。


Anaconda

Pythonや関連するパッケージをインストールするためのツールであり、主要なライブラリをオールインワンでインストール可能です。

Anacondaをインストールするとcondaコマンドが利用可能になります。Pythonのパッケージ管理システムのpipと併用することも可能なので、condaに入っていないライブラリはpipでインストールすることができます。


Pythonライブラリのインストール

上記にも少し記載していますが、Anacondaに無いパッケージをインストールしたい場合などには、Pythonのパッケージ管理システムpipを利用します。

今回下記に記載するものは、Anacondaに標準で入っているもののため、そこまで気にする必要はないかもですね。


numpy

image.png

Pythonを使った科学計算の基本ライブラで、後述するSciPyと併せて科学技術計算でよく利用されるようです。


NumPy は Pythonプログラミング言語の拡張モジュールであり、大規模な多次元配列や行列のサポート、これらを操作するための大規模な高水準の数学関数ライブラリを提供する。(引用元 Wikipedia)


pipでインストールする場合には下記のコマンドを実行

pip install numpy


scipy(SciPy library)

image.png

scipyは、NumPyと同様で高度な科学計算を行うためのライブラリです。

NumPyで行える配列や行列の演算に加えて、信号処理や統計といった計算ができるようです。

pipでインストールする場合には下記のコマンドを実行

pip install scipy

ちなみに広義な意味で使われる「Science + Python = SciPy」もあるようで、

SciPyとは、Pythonベースの数学・科学技術計算用ソフトウェアエコシステムの名称とのことです。

image.png

これまでに記載した、「NumPy」や「SciPy library」、このあと記載する「Matplotlib」など

それぞれ得意とする領域のパッケージを組み合わせて構築される「数学・科学技術計算用ソフトウェアエコシステム」を指すようです。


matplotlib

image.png

matplotlibは、計算結果などをグラフで描画するためのライブラです。

numpyやscipyと組み合わせることが多いので必要に合わせて先にnumpyやscipyをインストールしておくとよさそうです。

pipでインストールする場合には下記のコマンドを実行

pip install matplotlib


pandas

image.png

pandasとは、行列データを扱いやすくしたり、集計を行うためのライブラリです。

CSVファイルをDataFrame型の行列データとして扱えるようにして読み取るなどが出来るようです。

pipでインストールする場合には下記のコマンドを実行

pip install pandas


IPython

image.png

IPythonは、Pythonの対話型インタプリタを拡張したもので、「拡張された対話型シェル」「分離型プロセス間通信モデル」「並列コンピューティング機構」などの機能も備えているようです。

pipでインストールする場合には下記のコマンドを実行

pip install ipython


まとめ

主に「SciPy.org」のコアパッケージのまとめみたいな感じになってしまいましたが、

初心者にとっては、どんなライブラリが便利で、何が出来てどういうものなのかを理解することも大事だと思います。

Python向けのIDEとして「PyCharm」があり、

「Anaconda」を利用して数学・科学技術計算を便利に扱うPythonライブラリたちを管理する。

(上記で足りないものはパッケージ管理ツール「pip」を利用する)

そして、コアなパッケージとしては下記のようなものがある。

パッケージ名
説明

NumPy
ベクトルや行列計算を行うためのライブラリ

SciPy library
信号処理や統計などの科学計算用のライブラリ

Matplotlib
グラフを描画するためのライブラリ

pandas
Rに類似のデータフレームを提供するライブラリ

IPython
対話的にPythonコマンドを実行するツール

具体的な使い方などはやりたいことを実現する過程の中で今後学んでいこうと思います。