PyLops/pylops

PyLops – A Linear-Operator Library for Python

What it solves

PyLops addresses the challenge of handling large-scale linear inverse problems where the matrices involved are too massive to be explicitly stored in memory. It allows users to perform complex linear algebra and optimization without needing to compute or store the full matrix of numbers.

How it works

Instead of representing linear operators as arrays of numbers (matrices), PyLops represents them as functions that describe matrix-vector products. By defining the forward operation (Dx) and the transpose/adjoint operation (Dᵀy), the library can utilize iterative solvers (like cg or lsqr) that only require the results of these products rather than the matrix elements themselves. It provides a wide array of built-in operators—such as derivatives, convolutions, and FFTs—and allows users to implement their own custom operators.

Who it’s for

It is designed for researchers and engineers working in signal processing, image processing, remote sensing, and other fields that rely on linear inverse problems and large-scale optimization.

Highlights

  • Matrix-free computation: Handles large-scale problems by avoiding explicit matrix construction.
  • Backend-agnostic: Provides an idiomatic Python interface for linear operators.
  • Built-in operators: Includes ready-to-use operators for derivatives, convolutions, and FFTs.
  • Integrated solvers: Supports least-squares and sparse inversion directly through an expressive syntax (e.g., using the / operator for inversion).

Related

  • Project
  • Project
  • Project
  • Project
  • Project