PR
更新:2025/02/28

科学技術計算向けのライブラリSciPyの簡単な使い方とバージョン確認

はるか
はるか
SciPyって知ってる?
ふゅか
ふゅか
もちろん!Pythonで科学技術計算をするためのライブラリよね。行列計算や最適化、統計とか、いろいろできるのよ!

1. SciPyとは?

SciPy(サイパイ)は、Pythonで科学技術計算を行うためのライブラリです。数値計算を効率的に行うための関数が豊富に用意されており、線形代数、最適化、統計、信号処理など、幅広い分野で活用されています。

2. SciPyの主な機能

SciPyには、以下のような科学技術計算に必要な機能が備わっています。

  • 線形代数(scipy.linalg):行列演算、固有値計算、行列分解など
  • 最適化(scipy.optimize):関数の最小化、最適化アルゴリズムの提供
  • 統計(scipy.stats):確率分布、統計解析、仮説検定
  • 信号処理(scipy.signal):フィルタ設計、フーリエ変換、信号解析
  • 補間(scipy.interpolate):スプライン補間、データ補間
  • 積分(scipy.integrate):数値積分、常微分方程式の解法
  • 高速フーリエ変換(scipy.fft):離散フーリエ変換(DFT)
  • 画像処理(scipy.ndimage):画像のフィルタ処理や変換

これらの機能により、SciPyは多くの科学技術分野で広く使用されています。

3. SciPyのインストール

SciPyを使用するには、Python環境にインストールする必要があります。以下のコマンドでインストールできます。

pip install scipy

SciPyはAnacondaにも含まれているため、Anacondaを使用している場合は、デフォルトで利用可能です。

4. SciPyのバージョン確認

SciPyのバージョンを確認するには、Pythonのインタラクティブシェル(またはスクリプト)で以下のコードを実行します。

import scipy
print(scipy.__version__)

実行すると、例えば

のようにSciPyのバージョンが表示されます。

5. SciPyの基本的な使い方

5.1. 行列計算(線形代数)

逆行列と行列式を計算してみましょう。

import numpy as np
from scipy.linalg import inv, det

A = np.array([[1, 2], [3, 4]])
print("行列A:\n", A)

# 逆行列
A_inv = inv(A)
print("逆行列:\n", A_inv)

# 行列式
A_det = det(A)
print("行列式:", A_det)

5.2. 最適化(関数の最小化)

from scipy.optimize import minimize

def func(x):
    return x**2 + 3*x + 2

result = minimize(func, x0=0)  # 初期値x0=0で最小値を探す
print("最小値:", result.x)
はるか
はるか
SciPyには最適化の機能もあるらしい。何ができる?
ふゅか
ふゅか
例えば関数の最小値を求めるのに使えるわ!`scipy.optimize.minimize()` を使えば、関数の最小値を見つけられるのよ。

5.3. 数値積分

from scipy.integrate import quad

def f(x):
    return x**2

result, error = quad(f, 0, 2)  # x^2 を0から2の範囲で積分
print("積分結果:", result)

5.4. 確率分布(統計)

from scipy.stats import norm

# 標準正規分布の確率密度関数
x = 0
pdf = norm.pdf(x)
print("確率密度関数:", pdf)

# 累積分布関数
cdf = norm.cdf(x)
print("累積分布関数:", cdf)

6. まとめ

SciPyは、科学技術計算に必要な多くの関数を提供する強力なライブラリです。NumPyを基盤とし、線形代数、最適化、統計、積分、信号処理など、さまざまな分野で利用できます。

基本的な使い方として、

  • 行列計算
  • 最適化
  • 数値積分
  • 確率分布の計算

などを紹介しました。

SciPyを活用することで、複雑な計算を簡単に行うことができます。ぜひ実際に試してみてください!

PR