Abstract
Linear operators and optimization are at the core of many algorithms used in signal and image processing, remote sensing, and inverse problems. For small to medium-scale problems, existing software packages (e.g., MATLAB, Python NumPy and SciPy) allow to explicitly build dense or sparse matrices and perform algebraic operations with syntax that closely represents their equivalent mathematical notation. However, many real-application, large-scale operators do not lend themselves to explicit matrix representations, usually forcing practitioners to forego the convenient linear-algebra syntax available for their explicit-matrix counterparts. PyLops is an open-source Python library providing a flexible framework for the creation and combination of so-called linear operators, class-based entities that represent matrices and inherit their associated syntax convenience, but do not rely on the creation of explicit matrices. We show that PyLops operators can dramatically reduce the memory load and CPU computations compared to explicit-matrix calculations, while still allowing users to seamlessly use their existing knowledge of compact matrix-based syntax that scales to any problem size because no explicit matrices are required.
Original language | English (US) |
---|---|
Article number | 100361 |
Journal | SoftwareX |
Volume | 11 |
DOIs | |
State | Published - Jan 1 2020 |
Keywords
- Inverse problems
- Linear algebra
- Linear operator
- Optimization
- Python
ASJC Scopus subject areas
- Software
- Computer Science Applications