PyDMD: A Python package for robust dynamic mode decomposition
Sara M. Ichinaga, Francesco Andreuzzi, Nicola Demo, Marco Tezzele, Karl Lapo, Gianluigi Rozza, Steven L. Brunton, J. Nathan Kutz
TL;DR
The paper tackles robust dynamic mode decomposition (DMD) for real-world data that are noisy, multiscale, parameterized, or nonlinear by expanding PyDMD, a Python package for DMD, to include state-of-the-art methods such as BOP-DMD, CoSTS, parametric DMD, randomized DMD, and physics-informed DMD. It presents a modular, open-source framework with a DMDBase core, dedicated modules for each variant, time-delay preprocessing (e.g., Hankel embeddings), and thorough tutorials to facilitate practical usage. Key contributions include version 1.0 enhancements that broaden robustness, provide extensive documentation, and offer end-to-end pipelines for reconstruction and prediction across diverse datasets. The work demonstrates PyDMD’s ability to deliver robust, scalable, and accessible tools for extracting coherent spatiotemporal structures, making advanced DMD techniques more usable across scientific disciplines.
Abstract
The dynamic mode decomposition (DMD) is a simple and powerful data-driven modeling technique that is capable of revealing coherent spatiotemporal patterns from data. The method's linear algebra-based formulation additionally allows for a variety of optimizations and extensions that make the algorithm practical and viable for real-world data analysis. As a result, DMD has grown to become a leading method for dynamical system analysis across multiple scientific disciplines. PyDMD is a Python package that implements DMD and several of its major variants. In this work, we expand the PyDMD package to include a number of cutting-edge DMD methods and tools specifically designed to handle dynamics that are noisy, multiscale, parameterized, prohibitively high-dimensional, or even strongly nonlinear. We provide a complete overview of the features available in PyDMD as of version 1.0, along with a brief overview of the theory behind the DMD algorithm, information for developers, tips regarding practical DMD usage, and introductory coding examples. All code is available at https://github.com/PyDMD/PyDMD .
