Introduction
SciPy provides scientific computing algorithms built on NumPy.
Optimization
from scipy.optimize import minimize, root
# Minimize function
def objective(x):
return (x[0] - 2)**2 + (x[1] - 3)**2
result = minimize(objective, x0=[0, 0])
print(result.x) # [2, 3]
Integration
from scipy.integrate import quad, trapz
# Definite integral
result, error = quad(lambda x: x**2, 0, 1)
print(result) # 0.333...
# Numerical integration
x = np.linspace(0, 1, 100)
y = x**2
trapz(y, x) # 0.333...
Statistics
from scipy import stats
# Distribution functions
stats.norm.pdf(x) # PDF
stats.norm.cdf(x) # CDF
stats.norm.ppf(0.95) # Inverse CDF
stats.norm.rvs(0, 1) # Random sample
Practice Problems
- Find minimum of Rosenbrock function
- Solve equation root
- Calculate probabilities with normal distribution
- Perform curve fitting
- Calculate confidence intervals