skillfed

ruptures

Change point detection for signals in Python.

ruptures v1.1.10 1.6M downloads/30d#3,764 on PyPI2,069
Permissive license BSD-2-Clause Active released

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

Detects change points in time series and signal data using exact and approximate algorithms for parametric and non-parametric models.

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

pip

pip install ruptures

uv

uv add ruptures

poetry

poetry add ruptures

Installing ruptures

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 — numpy, scipy
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)

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

Keywords: change point detection, signal segmentation, computer science, machine learning, kernel methods, time series

Intended Audience :: Science/ResearchLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Topic :: Scientific/Engineering :: Mathematics

Tags

change point detectiontime series segmentationsignal breakpoint detectionoffline change detectiontime series analysissignal processing segmentationkernel change point methods
time-series-analysissignal-processingstatistical-methods

More Mathematics packages