🤖 AI Summary
SciPy currently supports only one-dimensional Wasserstein distance computation, lacking native capability to model optimal transport distances between multidimensional probability distributions. Method: This work introduces the first implementation of a multidimensional Wasserstein distance module in SciPy, formulated as a linear programming (LP) problem in standard form and solved efficiently using SciPy’s built-in `linprog` solver. The implementation handles discrete distributions of arbitrary dimensionality, supports batched inputs and sparse optimization, and includes comprehensive unit tests, documentation, and usage examples. Contribution/Results: The code has been merged into SciPy’s main branch and will be released in version 1.13+, filling a critical gap in SciPy’s support for optimal transport and multidimensional statistical distances. This advancement significantly broadens SciPy’s applicability in machine learning, bioinformatics, and computational statistics, enabling efficient, library-native computation of high-dimensional optimal transport metrics.
📝 Abstract
The Wasserstein distance, also known as the Earth mover distance or optimal transport distance, is a widely used measure of similarity between probability distributions. This paper presents an linear programming based implementation of the multi-dimensional Wasserstein distance function in Scipy, a powerful scientific computing package in Python. Building upon the existing one-dimensional scipy.stats.wasserstein_distance function, our work extends its capabilities to handle multi-dimensional distributions. To compute the multi-dimensional Wasserstein distance, we developed an implementation that transforms the problem into a linear programming problem. We utilized the scipy linear programming solver to effectively solve this transformed problem. The proposed implementation includes thorough documentation and comprehensive test cases to ensure accuracy and reliability. The resulting feature is set to be merged into the main Scipy development branch and will be included in the upcoming release, further enhancing the capabilities of Scipy in the field of multi-dimensional statistical analysis.