stumpy-dev/stumpy

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

What it solves

STUMPY is designed to solve the problem of efficiently finding nearest-neighbor subsequences within time series data. It allows users to automatically identify the most similar patterns (motifs) or the most dissimilar patterns (discords/anomalies) within a long time series without requiring prior knowledge of the pattern shape.

How it works

The library computes a "matrix profile," which is a data structure that stores the distance from every subsequence in a time series to its nearest neighbor. STUMPY provides several implementations to handle different scales of data:

  • Standard CPU execution: Using stumpy.stump for single-server processing.
  • Distributed execution: Using stumpy.stumped via Dask Distributed for large-scale datasets.
  • GPU acceleration: Using stumpy.gpu_stump for high-performance computing.
  • Multi-dimensional support: Using stumpy.mstump for analyzing multiple time series dimensions simultaneously.

Who it’s for

STUMPY is intended for academics, data scientists, and software developers who need to perform time series data mining tasks such as motif discovery, anomaly detection, and semantic segmentation.

Highlights

  • Scalable: Supports CPU, GPU, and distributed computing via Dask.
  • Versatile: Capable of handling both 1-dimensional and multi-dimensional time series.
  • Comprehensive Toolset: Includes specialized functions for time series chains (ATSC) and semantic segmentation (FLUSS).
  • High Performance: Leverages Numba JIT compilation for efficient execution.

Related

  • Project
  • Project
  • Project
  • Project
  • Project