SciPy

Fundamental algorithms for scientific computing, optimization, and statistics in Python.

Library
PyPI
v1.18.1
15,144 stars
BSD 3-Clause License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
98 /100 Excellent
Development Activity 100
Maintenance 96
Community 96
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
80 /100 Excellent
Architecture 88
Code Quality 92
Innovation 85
Learning Curve 55

SciPy is the foundational Python library for scientific and technical computing, built directly on top of NumPy arrays. It provides efficient, well-tested implementations of algorithms for optimization, linear algebra, integration, interpolation, signal and image processing, statistics, sparse matrices, and special functions, most of which wrap decades-proven Fortran and C numerical libraries (LAPACK, BLAS, FFTPACK, and more).

Used throughout academia, engineering, and industry, SciPy is one of the core pillars of the Python scientific computing stack (alongside NumPy, Matplotlib, and pandas). It powers everything from research notebooks to production data pipelines, giving Python the numerical horsepower to compete with MATLAB and specialized scientific software while remaining free and open source.

What You Get

  • scipy.optimize - local/global minimization, root finding, linear programming, curve fitting, and least-squares solvers
  • scipy.stats - hundreds of continuous and discrete probability distributions plus statistical tests and descriptive stats
  • scipy.linalg - a full LAPACK/BLAS-backed linear algebra API (decompositions, eigenvalues, matrix functions) that extends numpy.linalg
  • scipy.sparse and scipy.sparse.linalg - sparse matrix formats and solvers for large, mostly-zero systems
  • scipy.signal and scipy.fft - signal processing primitives (filtering, convolution, spectral analysis) and fast Fourier transforms
  • scipy.spatial, scipy.ndimage, scipy.interpolate, scipy.integrate - spatial data structures/KD-trees, N-dimensional image processing, interpolation, and ODE/quadrature integration

Common Use Cases

  • Numerically minimizing a cost function or fitting a model’s parameters to experimental data with scipy.optimize.minimize or curve_fit
  • Running statistical hypothesis tests (t-tests, ANOVA, KS tests) and working with probability distributions via scipy.stats
  • Solving large sparse linear systems (e.g., from finite-element or graph problems) with scipy.sparse.linalg
  • Filtering, resampling, or spectrally analyzing sensor/audio signals with scipy.signal and scipy.fft
  • Performing nearest-neighbor spatial queries or Delaunay triangulation with scipy.spatial.cKDTree

Under The Hood

Architecture: SciPy is organized as a set of largely independent topical subpackages (optimize, stats, linalg, sparse, signal, spatial, integrate, interpolate, fft, ndimage, special, cluster, constants, io, misc) under a single top-level namespace, each with its own __init__.py documenting its public API via NumPy-style docstrings rendered into Sphinx docs. Performance-critical routines are implemented in C, C++, Cython, or wrapped Fortran (LAPACK/BLAS/FFTPACK/ODEPACK-derived code), with thin Python layers providing a uniform, discoverable interface; the scipy._lib subpackage centralizes internal utilities (deprecation helpers, array-API compatibility shims, testing utilities) shared across subpackages. The build is driven by Meson (meson-python backend) with Pythran, pybind11, and Cython all used as needed per extension module — a notably heterogeneous but disciplined multi-language build compared to typical pure-Python packages.

Tech Stack: Core dependency is NumPy (>=2.0) for array types; optional extras (pooch for dataset downloads, matplotlib for a handful of plotting helpers, threadpoolctl) are isolated behind optional-dependencies. The project increasingly supports the Python array-API standard so array-backed code can run on non-NumPy backends (e.g., CuPy, PyTorch tensors) via xp_capabilities markers seen throughout the test suite. Requires Python >=3.12 for the current development branch, with wheels built per-platform since much of the codebase is compiled.

Code Quality: The test suite (pytest-based, configured in pytest.ini) is extensive, with custom markers for slow/xslow tests, array-API backend parametrization, thread-safety annotations, and ASAN-related exclusions, reflecting a mature, rigorously validated codebase with 1,900+ contributors and a documented AI-contribution policy. Docstrings follow the NumPy documentation standard consistently across the ~20 subpackages, and the CONTRIBUTING guide enforces unit tests, docs, and code style on every PR.

API Design: Functions like minimize() and curve_fit() use a consistent “one function, method= string selects the algorithm” pattern, returning a uniform OptimizeResult/Bunch-style object across dozens of underlying solvers — a deliberate design choice that trades a slightly larger single-function signature for a highly discoverable, swappable-backend API. This uniformity is a major reason SciPy is approachable despite covering an enormous algorithmic surface area.

Used by 22 apps in this directory

Python
94%
Apache 2.0

knowhere

AI Development · AI Memory · Developer Tools

3,755

Transform messy, unstructured documents into persistent, navigable memory that AI agents can actually use.

View details
83
Repo Health
75
Technical
66
Dependency
Built with
Python 94%
Updated 6 days ago
Python
71%
MIT

Langflow

AI Agents · AI Development

155,973

Build, test, and deploy AI agents and RAG workflows visually with native API and MCP server export.

View details
90
Repo Health
85
Technical
64
Dependency
Built with
Python 71%
TypeScript 21%
Updated 6 days ago
C++
66%
Other

Memgraph

AI Development · Databases

4,628

High-performance in-memory graph database for AI context and real-time analytics

View details
90
Repo Health
79
Technical
66
Dependency
Built with
C++ 66%
Python 18%
Updated 6 days ago
Python
58%
Apache 2.0

MLflow

AI Development · Monitoring

28,512

The open source AI engineering platform for debugging, evaluating, monitoring, and optimizing production LLMs and agents at scale.

View details
96
Repo Health
86
Technical
67
Dependency
Built with
Python 58%
TypeScript 35%
Updated 6 days ago
Python
49%
Other

Arize Phoenix

Analytics · Devops · Monitoring

11,976

Open-source AI observability platform for tracing, evaluating, and debugging LLM applications with built-in intelligence and MCP support.

View details
92
Repo Health
88
Technical
67
Dependency
Built with
Python 49%
TypeScript 43%
Updated 6 days ago
Python
87%
Apache 2.0

PrivateGPT

AI Development

57,611

The open-source API layer that turns local LLMs into production private AI applications with full Claude API compatibility

View details
88
Repo Health
83
Technical
70
Dependency
Built with
Python 87%
Updated 1 weeks ago
Python
99%
Apache 2.0

Rasa Open Source

AI Assistants · AI Development · Voice AI

21,353

Rasa Open Source is a Python machine learning framework for building contextual, multi-turn chatbots and voice assistants that understand natural language and maintain conversation state.

View details
62
Repo Health
78
Technical
63
Dependency
Built with
Python 99%
Updated 3 months ago
Python
94%
BSD 3

skrub

Developer Tools

1,660

Turn messy real-world dataframes into machine learning features — no manual wrangling required.

View details
86
Repo Health
84
Technical
79
Dependency
Built with
Python 94%
Updated 1 weeks ago
Python
59%
AGPL 3.0

Speakr

AI Assistants

4,112

Self-hosted AI transcription with speaker diarization, smart tagging, and multi-user collaboration — your recordings stay on your infrastructure.

View details
84
Repo Health
79
Technical
70
Dependency
Built with
Python 59%
HTML 21%
JavaScript 17%
Updated 1 weeks ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers