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

Matteo Ravasi, Ivan Vasconcelos

Research output: Contribution to journalArticleAcademicpeer-review


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
Article number100361
Number of pages9
Publication statusPublished - 2020


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


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