stumpy-dev/stumpy

STUMPY is a powerful and scalable Python library for modern time series analysis

What it solves

STUMPY is designed to analyze time series data by identifying the nearest-neighbor subsequence for every part of the signal. This allows users to automatically discover repeated patterns (motifs), anomalies (discords), and other structural characteristics without needing a predefined template.

How it works

The library computes a "matrix profile," which maps every subsequence within a time series to its closest match elsewhere in the data. It provides multiple implementation paths depending on the hardware available:

  • Single-node CPU: Using stumpy.stump for standard processing.
  • Distributed CPU: Using stumpy.stumped via Dask for large-scale datasets.
  • GPU Acceleration: Using stumpy.gpu_stump for high-performance computation.
  • Multi-dimensional: Using stumpy.mstump for data with multiple dimensions.

Who it’s for

It is intended for academics, data scientists, and software developers who need to perform time series data mining, such as finding repeated shapes or detecting novelties in long signals.

Highlights

  • Scalable: Supports distributed computing with Dask and GPU acceleration.
  • Cuda-enabled: Leverages Numba for JIT compilation and GPU support.
  • Versatile: Capable of motif discovery, anomaly detection, shapelet discovery, and semantic segmentation.
  • Advanced Analysis: Includes tools for time series chains (ATSC) and semantic segmentation (FLUSS).

Related

  • Project
  • Project
  • Project
  • Project
  • Project