一、SciPy 簡介
SciPy(Scientific Python)是基于 NumPy 的開源科學計算庫,提供了數值積分、優化、信號處理、線性代數、統計分析等高級科學計算功能。它是構建 Python 科學計算生態系統的核心組件之一,常用于科研、工程、數據分析等領域。
二、安裝 SciPy
2.1 使用 pip 安裝(推薦)
pip install scipy
2.2 使用 Anaconda 安裝(科學計算推薦)
conda install scipy
2.3 驗證安裝
import scipy
print(scipy.__version__)
三、SciPy 子模塊簡介
模塊 | 作用說明 |
---|---|
scipy.integrate | 積分計算 |
scipy.optimize | 函數優化與最小值求解 |
scipy.stats | 概率分布與統計測試 |
scipy.linalg | 線性代數運算(比 NumPy 更豐富) |
scipy.fft | 傅里葉變換 |
scipy.signal | 信號處理 |
scipy.spatial | 空間數據結構與計算幾何 |
scipy.cluster | 聚類算法 |
四、使用示例
4.1 數值積分
from scipy import integrate
result, _ = integrate.quad(lambda x: x**2, 0, 1)
print(result) # 輸出 1/3 ≈ 0.333
4.2 函數最小值
from scipy import optimize
f = lambda x: x**2 + 10*np.sin(x)
res = optimize.minimize(f, x0=0)
print(res.x)
4.3 統計分析
from scipy import stats
data = [2, 4, 6, 8, 10]
print(stats.mean(data))
print(stats.variation(data)) # 變異系數
五、線性代數計算
from scipy import linalg
import numpy as npA = np.array([[1, 2], [3, 4]])
b = np.array([1, 2])
x = linalg.solve(A, b)
print(x)
六、信號處理
from scipy import signal
import numpy as np
import matplotlib.pyplot as pltx = np.linspace(0, 1, 500)
y = signal.sawtooth(2 * np.pi * 5 * x)plt.plot(x, y)
plt.title("Sawtooth 波形")
plt.show()
七、空間與距離計算
from scipy.spatial import distancea = [1, 2]
b = [4, 6]
print(distance.euclidean(a, b)) # 歐幾里得距離
八、常見問題
Q1: 報錯 ModuleNotFoundError: No module named 'scipy'
?
請確保正確安裝了 scipy
:
pip install scipy
或者使用 conda 安裝:
conda install scipy
Q2: 安裝太慢?
可嘗試使用清華鏡像源:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scipy
九、學習資源推薦
- SciPy 官方文檔
- SciPy 教程(菜鳥教程)
- Python 科學計算手冊
- 《Python 科學計算》 作者:Travis Oliphant
本文由“小奇Java面試”原創發布,轉載請注明出處。
可以搜索【小奇JAVA面試】第一時間閱讀,回復【資料】獲取福利,回復【項目】獲取項目源碼,回復【簡歷模板】獲取簡歷模板,回復【學習路線圖】獲取學習路線圖。