今回はデータ分析の分野で頻出するSciPyについて紹介します。
SciPy(サイパイ)とは
SciPy
は、科学技術計算を行うためのPythonのライブラリです。
最適化、線形代数、微分積分、統計学などの様々な分野で使用されます。
NumPy
など他のライブラリと合わせて使用することが多いです。
SciPy
の公式サイトはこちらです。
SciPyのインストール
はじめてSciPy
を使用する方は、インストールが必要です。
SciPy
のインストールには、pipを使用します。
コマンドラインで以下コマンドを実行します。
python -m pip install scipy
SciPyのインポート
SciPy
をコードで使用するには、以下のようにインポートする必要があります。
SciPy
は多くのモジュールで構成されているので、メモリの使用量を抑えるため、
モジュールごとインポートするのが一般的です。
以下は、統計のモジュールstats
をインポートする例です。
from scipy import stats
SciPyの主要機能と使用方法
SciPy
の主要機能と使用方法を簡単に紹介します。
SciPy
の主要機能は以下の通りです。
- 微分積分
- 線形代数
- 統計
それぞれの機能に対し、使用方法を説明していきます。
積分を計算するには、scipy.integrate
モジュールのquad
関数を使用します。
quad
関数は、積分の結果と推定誤差の2つの値を返します。
微分積分
SciPy
を使用して、微分積分を簡単に計算できます。
定積分\(\int_{0}^{1} 2x dx\) を例に計算してみます。
積分を計算するには、scipy.integrate
モジュールのquad
関数を使用します。
quad
関数は、積分の結果と推定誤差の2つの値を返します。
from scipy.integrate import quad
# 積分したい関数を定義
def integrand(x):
return 2*x
# 0から1までの範囲で関数を積分
result, error = quad(integrand, 0, 1)
print("積分結果:", result)
print("推定誤差:", error)
実行結果
積分結果: 1.0
推定誤差: 1.1102230246251565e-14
線形代数
SciPy
を使用して、線形代数を計算できます。
行列\( \left( \begin{array}{rr} 1 & 2 \\ 3 & 4 \end{array} \right) \) の逆行列を計算してみます。
SciPy
で逆行列を計算するには、scipy.linarg
モジュールのinv
関数を使用します。
import numpy as np
from scipy.linalg import inv
# 行列Aを定義
A = np.array([[1, 2], [3, 4]])
# 行列Aの逆行列を計算
A_inv = inv(A)
print("逆行列:")
print(A_inv)
実行結果
逆行列:
[[-2. 1. ]
[ 1.5 -0.5]]
統計
最後にSciPy
を使用し、統計の計算していきます。
レストランのお会計額に対し、記述統計を計算してみます。
SciPy
で記述統計を計算するには、scipy.stats
モジュールのdescribe
関数を使用します。
import seaborn as sns
from scipy import stats
# データ準備
data = sns.load_dataset('tips')
# 記述統計の計算
description = stats.describe(data['total_bill'])
print(description)
実行結果
DescribeResult(nobs=244, minmax=(3.07, 50.81), mean=19.78594262295082, variance=79.25293861397827, skewness=1.1262346334818638, kurtosis=1.1691681323851366)
まとめ
今回はSciPy
について、SciPyとはなにか、からSciPyの主要機能の簡単な使用例までを紹介しました。
SciPy
は数学の計算をするときに使用するライブラリなんだなっとだけ理解していただければと思います。
ここまで読んでくださりありがとうございます。
参考
おすすめ教材
米国データサイエンティストが教える統計学超入門講座【Pythonで実践】 【世界で55万人が受講】データサイエンティストを目指すあなたへ〜データサイエンス25時間ブートキャンプ〜他のUdemyの講座が気になる方はこちら