ruptures
Change point detection for signals in Python.
Decision gist · record as of 2026-08-14
Yes. Ruptures is actively maintained, has no known vulnerabilities, and offers a comprehensive, well-documented toolkit for a specialized but important problem. The permissive BSD license and broad Python version support (3.9–3.13) make it low-risk to adopt. Install it if you need to detect structural breaks in time series or signal data.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Medium install friction due to compiled wheels for multiple Python versions and architectures.
- The package is actively maintained with a recent release and 2069 repository stars, indicating stable ongoing development.
License · maintenance · safety
BSD-2-Clause (permissive) — BSD-2-Clause permissive license allows commercial and private use with minimal restrictions—only requiring preservation of copyright and license text in distributions.
last release 2025-09-10 (338 days) · last repo commit 2026-07-06 · 2,069 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,558,626 downloads/mo, #3,764 on PyPI
Alternatives
Verify before relying
import ruptures as rpt
import numpy as np
# Create a signal with known breakpoints
signal, true_bkps = rpt.pw_constant(1000, 3, 4, noise_std=4)
# Detect change points using Pelt algorithm
algo = rpt.Pelt(model="rbf").fit(signal)
detected_bkps = algo.predict(pen=10)
print(detected_bkps)- Whether the package's performance characteristics scale adequately for very large time series datasets.
- Specific memory requirements or constraints when working with high-dimensional signals.
What it is and what it does
Ruptures is a Python library for offline change point detection in time series and signal data. It provides a collection of algorithms—both exact and approximate—for identifying structural breaks in non-stationary signals under various statistical models. The library emphasizes a consistent, well-documented interface and modular design, allowing different detection algorithms and cost models to be combined and extended.
The package depends on numpy and scipy for numerical computation. It is designed for offline analysis (where the entire signal is available upfront) rather than streaming detection. Users instantiate an algorithm object (e.g., Pelt with a kernel model), fit it to their signal, and call predict() to retrieve estimated change point locations. The library handles both univariate and multivariate signals.
Use it for
- Detect regime changes in financial time series to identify market shifts or volatility transitions.
- Segment sensor data or environmental measurements to identify periods of anomalous behavior.
- Analyze neuroscience signals (e.g., acetylcholine regulation) to identify state transitions in biological systems.
- Monitor agricultural or remote sensing data to identify changes in crop health or land use patterns.
- Identify shifts in classroom engagement or student participation patterns in educational settings.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Ruptures is actively maintained, has no known vulnerabilities, and offers a comprehensive, well-documented toolkit for a specialized but important problem. The permissive BSD license and broad Python version support (3.9–3.13) make it low-risk to adopt. Install it if you need to detect structural breaks in time series or signal data.
Install
ruptures on PyPI
Before you install
Medium install friction due to compiled wheels for multiple Python versions and architectures. The package is actively maintained with a recent release and 2069 repository stars, indicating stable ongoing development.
License in practice
BSD-2-Clause permissive license allows commercial and private use with minimal restrictions—only requiring preservation of copyright and license text in distributions.
Quickstart
import ruptures as rpt
import numpy as np
# Create a signal with known breakpoints
signal, true_bkps = rpt.pw_constant(1000, 3, 4, noise_std=4)
# Detect change points using Pelt algorithm
algo = rpt.Pelt(model="rbf").fit(signal)
detected_bkps = algo.predict(pen=10)
print(detected_bkps)
Verify before relying
- Whether the package's performance characteristics scale adequately for very large time series datasets.
- Specific memory requirements or constraints when working with high-dimensional signals.
Package facts
| License | BSD-2-Clause permissive |
| Python support | Supports the current Python release <3.14,>=3.9 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 2 packagesnumpyscipy |
| Maintenance | Actively maintained 338 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,558,626 / month, #3,764 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Intended Audience :: Science/ResearchLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Topic :: Scientific/Engineering :: Mathematics |
Evidence: ruptures-1.1.10-cp310-cp310-macosx_10_9_x86_64.whl; ruptures-1.1.10-cp310-cp310-macosx_11_0_arm64.whl; ruptures-1.1.10-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; ruptures-1.1.10-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; ruptures-1.1.10-cp310-cp310-win_amd64.whl; ruptures-1.1.10-cp311-cp311-macosx_10_9_x86_64.whl; ruptures-1.1.10-cp311-cp311-macosx_11_0_arm64.whl; ruptures-1.1.10-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; ruptures-1.1.10-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; ruptures-1.1.10-cp311-cp311-win_amd64.whl; ruptures-1.1.10-cp312-cp312-macosx_10_13_x86_64.whl; ruptures-1.1.10-cp312-cp312-macosx_11_0_arm64.whl; ruptures-1.1.10-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; ruptures-1.1.10-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; ruptures-1.1.10-cp312-cp312-win_amd64.whl; ruptures-1.1.10-cp313-cp313-macosx_10_13_x86_64.whl; ruptures-1.1.10-cp313-cp313-macosx_11_0_arm64.whl; ruptures-1.1.10-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; ruptures-1.1.10-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; ruptures-1.1.10-cp313-cp313-win_amd64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “change point detection”
- rupturesDetects change points in time series and signal data using exact and…
- piecewise-regressionFits piecewise linear regression models to data with one or more…
- kneedDetects knee (elbow) points in curves using the Kneedle algorithm,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Mathematics packages
NetworkX provides data structures and algorithms for creating, analyzing, and manipulating graphs and networks, supporting everything from simple undirected graphs to complex directed and weighted networks.
kiwisolver is a Python binding to a fast C++ implementation of the Cassowary constraint solver, enabling you to solve systems of linear constraints and inequalities.
Install it if you need to solve constraint systems; skip it if you only need simple linear algebra.
SymPy is a Python library for symbolic mathematics, performing algebraic manipulation, calculus, equation solving, and mathematical expression simplification without numerical approximation.
ContourPy calculates contours of 2D quadrilateral grids using C++11 algorithms wrapped in Python, offering serial and multithreaded implementations without requiring Matplotlib as a dependency.
PyTorch provides GPU-accelerated tensor computation and automatic differentiation for building and training deep neural networks in Python.
onnxruntime loads and executes Open Neural Network Exchange (ONNX) models with a focus on inference performance across CPUs and accelerators.
Install it if you have ONNX models to run in production or development.
See also tsfresh · pyts · pypots · scikit-posthocs · pymannkendall · neurokit2 · arch · piecewise-regression · pyPPG · rainflow