SciPy is an open-source library of scientific algorithms for Python. It is organized into subpackages—each focused on a domain—while sharing NumPy's array model.
Core subpackages
scipy.stats— probability distributions and statistical testsscipy.optimize— function minimization and root findingscipy.linalg— dense linear algebra (extends NumPy)scipy.sparse— sparse matrix formats and solversscipy.integrate— quadrature and ODE solversscipy.signal— filtering, convolution, spectral analysisscipy.interpolate— splines and grid interpolationscipy.special— special mathematical functions
Typical use cases
- A/B test analysis with hypothesis tests
- Fitting model parameters to experimental data
- Solving linear systems in engineering simulations
- Processing sensor time series with FFT and filters
- Sparse graph and network computations
Import conventions
import numpy as np
from scipy import stats, optimize, linalg
import scipy.sparse as sp
x = np.linspace(0, 1, 5)
print('stats normal pdf at 0:', stats.norm.pdf(0.0))
Important interview questions and answers
- Q: SciPy vs NumPy?
A: NumPy = ndarray foundation; SciPy = specialized algorithms on those arrays. - Q: Why submodule imports?
A: Keeps namespaces clear—import only what you need (from scipy import stats).
Self-check
- Name four SciPy subpackages and one use case each.
- What array type do SciPy functions expect?
Tip: Import submodules you need (stats, optimize)—avoid wildcard imports in production.
Interview prep
- SciPy vs NumPy?
NumPy = arrays; SciPy = scientific algorithms on those arrays.
- Key subpackages?
stats, optimize, linalg, sparse, integrate, signal, interpolate, special.