PyLops—A linear-operator Python library for scalable algebra and optimization

Matteo Ravasi*, Ivan Vasconcelos

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

73 Scopus citations

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 languageEnglish (US)
Article number100361
JournalSoftwareX
Volume11
DOIs
StatePublished - Jan 1 2020

Keywords

  • Inverse problems
  • Linear algebra
  • Linear operator
  • Optimization
  • Python

ASJC Scopus subject areas

  • Software
  • Computer Science Applications

Fingerprint

Dive into the research topics of 'PyLops—A linear-operator Python library for scalable algebra and optimization'. Together they form a unique fingerprint.

Cite this