OpenViSTAI · Agents · Blockchain · Crypto
Menu
AI Data & Analytics

Pypots

PyPOTS is a Python library of machine-learning methods for partially observed multivariate time series, including models for imputation, classification, clustering, forecasting and anomaly detection.

Independent OpenViST project profile, based on linked sources.

Pypots — OpenViST project profile in AI Data & Analytics.
OpenViST project illustration. See the linked sources for product details.
Understand the project

Practical overview

When it fits

Use PyPOTS when your Python analysis involves multivariate time series with missing observations and you need a model for imputation or another supported analysis task.

Who it is for

  • Researchers analyzing incomplete time-series datasets.
  • Engineers applying machine-learning methods to multivariate observations with missing values.

Documented uses

  • Impute missing values in multivariate time-series data.
  • Classify or cluster partially observed time series.
  • Forecast from incomplete time-series observations.
  • Detect anomalies in time series that contain missing values.
Before you choose

Requirements & limits

The project documents installation through pip, conda, and Docker. The repository specifies the BSD-3-Clause license.

  • The README indicates Python 3.8 or later and points to dependency version limitations in the installation documentation.
  • The documented example structures input as sample, time-step and feature dimensions.
  • In the example, validation data includes ground truth for evaluation and checkpoint selection.

Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.

Source-based practical guide

Prepare data for a SAITS imputation workflow

Load the PhysioNet2012 set-a data and prepare incomplete training, validation, and test inputs for the README's SAITS imputation example.

Before you start

  • PyPOTS and the example's dependencies: NumPy, scikit-learn, PyGrinder, and BenchPOTS.
  • The README example uses the BenchPOTS preprocess_physionet2012 helper to obtain dataset splits.

Steps

  1. Call preprocess_physionet2012(subset='set-a', rate=0.1) to obtain the dataset splits; the README says the ecosystem libraries download and extract the data automatically.

  2. Assign train_X, val_X, and test_X from the returned train_X, val_X, and test_X entries.

  3. Prepare train_set as {"X": train_X} and val_set with {"X": val_X, "X_ori": data["val_X_ori"]}.

  4. Prepare test_set as {"X": test_X}, retain data["test_X_ori"] as the test ground truth, and form the indicating mask with np.isnan(test_X) ^ np.isnan(test_X_ori).

Expected outcome

The example's training, validation, and test dictionaries are prepared, along with test ground truth and a mask identifying values missing from the test input but present in the original.

Guide limitations

  • These steps stop at data preparation and do not document the complete model setup, training, or evaluation sequence.
  • The example depends on the referenced ecosystem data-preprocessing helper and packages.
Evidence and transparency

Sources & review

Source record details
Source availability
Active
Sources checked
11 October 2026
Original website title
WenjieDu/PyPOTS · Official homepage title · retained in its source language