PyPOTS
A Python toolkit/library for reality-centric machine/deep learning and data mining on partially-observed time series, including SOTA neural network models for scientific analysis tasks of imputation/classification/clustering/forecasting/anomaly detection/cleaning on incomplete industrial (irregularly-sampled) multivariate TS with NaN missing values
Install / Use
/learn @WenjieDu/PyPOTSREADME
<img src="https://pypots.com/figs/icons/translate.svg" width="18"> 简体中文 | English
<a href="https://github.com/WenjieDu/PyPOTS"> <img src="https://pypots.com/figs/pypots_logos/PyPOTS/logo_FFBG.svg" width="200" align="right"> </a> <h3 align="center">Welcome to PyPOTS</h3> <p align="center"><i>a Python toolbox for machine learning on Partially-Observed Time Series</i></p> <p align="center"> <a href="https://docs.pypots.com/en/latest/install.html#reasons-of-version-limitations-on-dependencies"> <img alt="Python version" src="https://img.shields.io/badge/Python-v3.8+-F8C6B5?logo=python&logoColor=white"> </a> <a href="https://landscape.pytorch.org/?item=modeling--specialized--pypots"> <img alt="Pytorch landscape" src="https://img.shields.io/badge/PyTorch%20Landscape-EE4C2C?logo=pytorch&logoColor=white"> </a> <a href="https://github.com/WenjieDu/PyPOTS/blob/main/LICENSE"> <img alt="BSD-3 license" src="https://img.shields.io/badge/License-BSD--3-E9BB41?logo=opensourceinitiative&logoColor=white"> </a> <a href="https://github.com/WenjieDu/PyPOTS?tab=coc-ov-file"> <img alt="Code of Conduct" src="https://img.shields.io/badge/Contributor_Covenant-2.1-4baaaa"> </a> <a href="https://github.com/WenjieDu/PyPOTS#-community"> <img alt="Community" src="https://img.shields.io/badge/join_us-community!-C8A062"> </a> <a href="https://github.com/WenjieDu/PyPOTS/releases"> <img alt="the latest release version" src="https://img.shields.io/github/v/release/wenjiedu/pypots?color=EE781F&include_prereleases&label=Release&logo=github&logoColor=white"> </a> <a href="https://github.com/WenjieDu/PyPOTS/graphs/contributors"> <img alt="GitHub contributors" src="https://img.shields.io/github/contributors/wenjiedu/pypots?color=D8E699&label=Contributors&logo=GitHub"> </a> <a href="https://star-history.com/#wenjiedu/pypots"> <img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/wenjiedu/pypots?logo=None&color=6BB392&label=%E2%98%85%20Stars"> </a> <a href="https://github.com/WenjieDu/PyPOTS/network/members"> <img alt="GitHub Repo forks" src="https://img.shields.io/github/forks/wenjiedu/pypots?logo=forgejo&logoColor=black&label=Forks"> </a> <a href="https://sonarcloud.io/component_measures?id=WenjieDu_PyPOTS&metric=sqale_rating&view=list"> <img alt="maintainability" src="https://sonarcloud.io/api/project_badges/measure?project=WenjieDu_PyPOTS&metric=sqale_rating"> </a> <a href="https://coveralls.io/github/WenjieDu/PyPOTS?branch=full_test"> <img alt="Coveralls coverage" src="https://img.shields.io/coverallsCoverage/github/WenjieDu/PyPOTS?branch=full_test&logo=coveralls&color=75C1C4&label=Coverage"> </a> <a href="https://github.com/WenjieDu/PyPOTS/actions/workflows/testing_ci.yml"> <img alt="GitHub Testing" src="https://img.shields.io/github/actions/workflow/status/wenjiedu/pypots/testing_ci.yml?logo=circleci&color=C8D8E1&label=CI"> </a> <a href="https://docs.pypots.com"> <img alt="Docs building" src="https://img.shields.io/readthedocs/pypots?logo=readthedocs&label=Docs&logoColor=white&color=395260"> </a> <a href="https://deepwiki.com/WenjieDu/PyPOTS"> <img alt="Ask DeepWiki" src="https://deepwiki.com/badge.svg"> </a> <a href="https://github.com/psf/black"> <img alt="Code Style" src="https://img.shields.io/badge/Code_Style-black-000000"> </a> <a href="https://anaconda.org/conda-forge/pypots"> <img alt="Conda downloads" src="https://pypots.com/figs/downloads_badges/conda_pypots_downloads.svg"> </a> <a href="https://pepy.tech/project/pypots"> <img alt="PyPI downloads" src="https://pypots.com/figs/downloads_badges/pypi_pypots_downloads.svg"> </a> <a href="https://arxiv.org/abs/2305.18811"> <img alt="arXiv DOI" src="https://img.shields.io/badge/DOI-10.48550/arXiv.2305.18811-F8F7F0"> </a> </p>⦿ Motivation: Due to all kinds of reasons like failure of collection sensors, communication error,
and unexpected malfunction, missing values are common to see in time series from the real-world environment.
This makes partially-observed time series (POTS) a pervasive problem in open-world modeling and prevents advanced
data analysis. Although this problem is important, the area of machine learning on POTS still lacks a dedicated toolkit.
PyPOTS is created to fill in this blank.
⦿ Mission: PyPOTS (pronounced "Pie Pots") is born to become a handy toolbox that is going to make machine learning on
POTS easy rather than tedious, to help engineers and researchers focus more on the core problems in their hands rather
than on how to deal with the missing parts in their data. PyPOTS will keep integrating classical and the latest
state-of-the-art machine learning algorithms for partially-observed multivariate time series. For sure, besides various
algorithms, PyPOTS is going to have unified APIs together with detailed documentation and interactive examples across
algorithms as tutorials.
🤗 Please star this repo to help others notice PyPOTS if you think it is a useful toolkit. Please kindly cite PyPOTS in your publications if it helps with your research. This really means a lot to our open-source research. Thank you!
The rest of this readme file is organized as follows: ❖ Available Algorithms, ❖ PyPOTS Ecosystem, ❖ Installation, ❖ Usage, ❖ Citing PyPOTS, ❖ Contribution, ❖ Community.
❖ Available Algorithms
PyPOTS supports imputation, classification, clustering, forecasting, and anomaly detection tasks on multivariate
partially-observed time series with missing values. The table below shows the availability of each algorithm
(sorted by Year) in PyPOTS for different tasks. The symbol ✅ indicates the algorithm is available for the
corresponding task (note that models will be continuously updated in the future to handle tasks that are not
currently supported. Stay tuned❗️).
🌟 Since v0.2, all neural-network models in PyPOTS has got hyperparameter-optimization support. This functionality is implemented with the Microsoft NNI framework. You may want to refer to our time-series imputation survey and benchmark repo Awesome_Imputation to see how to config and tune the hyperparameters.
🔥 Note that all models whose name with 🧑🔧 in the table (e.g. Transformer, iTransformer, Informer etc.) are not
originally proposed as algorithms for POTS data in their papers, and they cannot directly accept time series with
missing values as input, let alone imputation. To make them applicable to POTS data, we specifically apply the
embedding strategy and training approach (ORT+MIT) the same as we did in
the SAITS paper[^1].
The task types are abbreviated as follows:
IMPU: Imputation;
FORE: Forecasting;
CLAS: Classification;
CLUS: Clustering;
ANOD: Anomaly Detection.
In addition to the 5 tasks, PyPOTS also provides TS2Vec[^48] for time series representation learning and vectorization.
The paper references and links are all listed at the bottom of this file.
| Type | Algo | IMPU | FORE | CLAS | CLUS | ANOD | Year - Venue |
|:--------------|:------------------------------------------------------------------------------------------------------------------------------------------------|:--------:|:--------:|:--------:|:--------:|:--------:|:---------------------------------------------------------------------------------------------------------|
| LLM&TSFM | <a href="https://time-series.ai"><img src="https://pypots.com/figs/timeseriesai/logo.png" width="26px" align="center">Time-Series.AI</a> [^36] | ✅ | ✅ | ✅ | ✅ | ✅ | <a href="https://docs.google.com/forms/d/1Ff2ndYUFQEL3tIcwtcR8lWeopQ2vTXX6D_x8WGFKH6E">Join waitlist</a> |
| Neural Net | MixLinear🧑🔧[^52] | | ✅ | | | | 2026 - ICLR |
| Neural Net | TEFN🧑🔧[^39] | ✅ | ✅ | ✅ | | ✅ | 2025 - TPAMI |
| Neural Net | TimeMixer++[^49] | ✅ | ✅ | | | ✅ | 2025 - ICLR |
| LLM | Time-LLM🧑🔧[^45] | ✅ | ✅ | | | | 2024 - ICLR |
| TSFM | MOMENT[^47] | ✅ | ✅ | |
Related Skills
feishu-drive
331.2k|
things-mac
331.2kManage Things 3 via the `things` CLI on macOS (add/update projects+todos via URL scheme; read/search/list from the local Things database)
clawhub
331.2kUse the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com
codebase-memory-mcp
843High-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 64 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.
