SciPy (Scientific Python) is a foundational library for scientific and technical computing built on NumPy, providing high-performance implementations of algorithms for optimization, integration, interpolation, linear algebra, signal processing, statistics, and more. It is the standard for solving complex numerical problems in physics, engineering, data science, and research. As of SciPy 1.15+, the library has expanded with a dedicated numerical differentiation module (scipy.differentiate), fully functional sparse array API (csr_array etc.), and advanced resampling methods (bootstrap, permutation_test) β making function selection and parameter tuning more important than ever.
What This Cheat Sheet Covers
This topic spans 21 focused tables and 279 indexed concepts. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.
Table 1: Core Modules and Subpackages
| Module | Example | Description |
|---|---|---|
from scipy import optimize | β’ Optimization and root-finding algorithms for scalar and multivariate functions β’ includes constrained/unconstrained minimization, curve fitting, equation solvers, and MILP. | |
from scipy import integrate | β’ Numerical integration and ODE solvers β’ supports single/multidimensional quadrature and initial value problem solving for differential equations. | |
from scipy import stats | β’ Probability distributions and statistical functions β’ provides continuous/discrete distributions, hypothesis tests, correlation, resampling (bootstrap, permutation), and QMC. | |
from scipy import linalg | β’ Advanced linear algebra operations β’ extends NumPy with matrix decompositions, eigenvalue solvers, and specialized matrix functions β always prefer scipy.linalg over numpy.linalg for numerical stability. | |
from scipy import sparse | β’ Sparse array/matrix data structures and operations β’ as of SciPy 1.15, csr_array and related array types are preferred over the legacy matrix API. | |
from scipy import interpolate | β’ Interpolation techniques for 1D and multidimensional data β’ includes splines, RBF interpolation, piecewise polynomials, and griddata for scattered data. | |
from scipy import signal | β’ Signal processing tools for filtering, convolution, spectral analysis, and system analysis β’ includes filter design, FFT-based operations, STFT, and windowing functions. | |
from scipy import fft | β’ Fast Fourier Transform module β’ newer interface replacing scipy.fftpack β supports complex FFTs, DCT, DST, and FFT planning. |