Scipyとは?Scipyのインストールを解説【Python入門】

Scipyとは?Scipyのインストールを解説【Python入門】 プログラミング

Scipyというライブラリをよく目にしませんか?
もしTensorFlowを利用していれば、間接的にScipyを利用していることになります。

TensorFlowの依存ライブラリには、Scipyが存在しています。
そのため、TensorFlowをインストールすれば、Scipyも自動的にインストールされます。

実は、機械学習をする人には、Scipyは身近な存在だったのです。
このScipyを私たちが直接利用することはあるのでしょうか?

本記事の内容

  • Scipyとは?
  • Scipyのシステム要件
  • Scipyのインストール
  • Scipyの動作確認

それでは、上記に沿って解説していきます。

Scipyとは?

Scipyの読み方は、「サイパイ」となります。

SciPyは、数学・科学・工学のための数値解析ソフトウェアです。
オープンソースとして、常時開発が行われています。

また、世界をリードする科学者やエンジニアに多く利用されています。
研究分野では、高度な科学技術計算が必要とされるからなのでしょう。

では、具体的にはどのような科学技術計算が可能なのでしょうか?
Scipyのサブモジュール単位で確認します。

scipy.clusterクラスター分析
scipy.constants物理定数
scipy.fft離散フーリエ変換
scipy.integrate数値積分
scipy.interpolate補間
scipy.ioデータ入出力
scipy.linalg線形代数
scipy.miscその他ルーチン
scipy.ndimage多次元画像処理
scipy.odr直交距離回帰
scipy.optimize数理最適化
scipy.signal信号処理
scipy.sparse疎行列
scipy.spatial空間的データ構造とアルゴリズム
scipy.special特別機能
scipy.stats統計機能

上記を確認すると、どこかで見たことのあるキーワードが存在しています。
例えば、線形代数は普通に高校数学で出てきましたね。

高度な科学技術計算と言えども、馴染のある計算もあります。
決して、科学者だけが利用するようなモノではないということです。
それに、全然馴染みがなくても、便利な関数があれば使っていけばいいだけです。

以上、Scipyで行える計算処理の雰囲気はつかめたと思います。
次は、Scipyのシステム要件を確認します。

Scipyのシステム要件

Scipyの最新バージョンは、1.6.0となります。
この最新バージョンは、2020年12月31日にリリースされています。

サポートOSに関しては、以下を含むクロスプラットフォーム対応です。

  • Windows
  • macOS
  • Linux

次は、ちょっと注意が必要です。
サポート対象のPythonのバージョンが、以下となっています。

  • Python 3.7
  • Python 3.8
  • Python 3.9

比較的新しいPythonにしか対応していません。
3.6も切り捨てているのは、少し驚きです。

念のためにPythonのバージョンを確認。

>python -V
Python 3.8.6

問題ありませんね。

以上、Scipyのシステム要件でした。
では、Scipyをインストールしていきましょう。

Scipyのインストール

最初に、現状のインストール済みパッケージを確認しておきます。

>pip list
Package    Version
---------- -------
pip        20.3.3
setuptools 51.1.2

次にするべきことは、pip自体の更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip

では、Scipyのインストールです。
Scipyのインストールは、以下のコマンドとなります。

pip install scipy

インストールは、すぐに終わります。
では、どんなパッケージがインストールされたのかを確認しましょう。

>pip list
Package    Version
---------- -------
numpy      1.19.5
pip        20.3.3
scipy      1.6.0
setuptools 51.1.2

scipyは最新版が、インストールされています。
あと、numpyもインストールされています。

確かに、ScipyはNumPyを依存ライブラリとしています。
NumPy配列を用いて、計算処理を行います。
だから、numpy 1.19.5がインストールされているのも納得。

最後に、Scipyの動作確認を行いましょう。

Scipyの動作確認

逆行列を求める関数が、Scipyには用意されています。
それを使って、動作確認を行います。

元となる行列は、以下。

この行列の逆行列を求めます。

import numpy as np
from scipy import linalg

A = np.array([[1,3,2],[-1,0,1],[2,3,0]])

AI = linalg.inv(A)

print(AI)

上記コードの実行結果は、以下。

[[ 1.         -2.         -1.        ]
[-0.66666667  1.33333333  1.        ]
[ 1.         -1.         -1.        ]]

正式な回答は、以下。

小数点と分数での表記の違いはあれど、結果は同じです。
動作確認としては、これで十分でしょう。

以上、Scipyの動作確認でした。

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