PyLops PyLops PyLops
/

Getting started:

  • 🖥️ Installation
  • 🎮 GPU / TPU Support
  • 🔗 Extensions
  • 📚 Tutorials
    • 01. The LinearOperator
    • 02. The Dot-Test
    • 03. Solvers
    • 03. Solvers (Advanced)
    • 04. Bayesian Inversion
    • 05. Image deblurring
    • 06. 2D Interpolation
    • 07. Post-stack inversion
    • 08. Pre-stack (AVO) inversion
    • 09. Multi-Dimensional Deconvolution
    • 10. Marchenko redatuming by inversion
    • 11. Radon filtering
    • 12. Seismic regularization
    • 13. Deghosting
    • 14. Seismic wavefield decomposition
    • 15. Least-squares migration
    • 16. CT Scan Imaging
    • 17. Real/Complex Inversion
    • 18. Deblending
    • 19. Image Domain Least-squares migration
    • 20. Torch Operator
    • 21. JAX Operator
    • 22. Time-shift estimation
  • 🖼 Gallery
    • 1D Smoothing
    • 1D, 2D and 3D Sliding
    • 2D Smoothing
    • 3D Smoothing
    • AVO modelling
    • Acoustic Wave Equation modelling
    • Bayesian Linear Regression
    • Bilinear Interpolation
    • Blending
    • CGLS and LSQR Solvers
    • Causal Integration
    • Chirp Radon Transform
    • Conj
    • Convolution
    • Derivatives
    • Describe
    • Diagonal
    • Discrete Cosine Transform
    • Flip along an axis
    • Fourier Radon Transform
    • Fourier Transform
    • Identity
    • Imag
    • L1-L1 IRLS
    • Linear Regression
    • MP, OMP, ISTA and FISTA
    • MRI modelling
    • Matrix Multiplication
    • Multi-Dimensional Convolution
    • Non-stationary Convolution
    • Non-stationary Filter Estimation
    • Normal Moveout (NMO) Correction
    • Operators concatenation
    • Operators with Multithreading/Multiprocessing
    • PWD-based slope estimation and structural smoothing
    • Padding
    • Patching
    • PhaseShift operator
    • Polynomial Regression
    • Pre-stack modelling
    • Radon Transform
    • Real
    • Restriction and Interpolation
    • Roll
    • Seislet transform
    • Shift
    • Slope estimation via Structure Tensor algorithm
    • Spread How-to
    • Sum
    • Symmetrize
    • Synthetic seismic
    • Tapers
    • Total Variation (TV) Regularization
    • Transpose
    • Wavelet estimation
    • Wavelet transform
    • Wavelets
    • Zero
  • ❓ Frequenty Asked Questions

Reference documentation:

  • 🔧 PyLops API
    • pylops.LinearOperator
    • pylops.FunctionOperator
    • pylops.MemoizeOperator
    • pylops.PyTensorOperator
    • pylops.TorchOperator
    • pylops.JaxOperator
    • pylops.MatrixMult
    • pylops.Identity
    • pylops.Zero
    • pylops.Diagonal
    • pylops.Transpose
    • pylops.Flip
    • pylops.Roll
    • pylops.Pad
    • pylops.Sum
    • pylops.Symmetrize
    • pylops.Restriction
    • pylops.Regression
    • pylops.LinearRegression
    • pylops.CausalIntegration
    • pylops.Spread
    • pylops.VStack
    • pylops.HStack
    • pylops.Block
    • pylops.BlockDiag
    • pylops.Kronecker
    • pylops.Real
    • pylops.Imag
    • pylops.Conj
    • pylops.ToCupy
    • pylops.Smoothing1D
    • pylops.Smoothing2D
    • pylops.SmoothingND
    • pylops.FirstDerivative
    • pylops.SecondDerivative
    • pylops.Laplacian
    • pylops.Gradient
    • pylops.FirstDirectionalDerivative
    • pylops.SecondDirectionalDerivative
    • pylops.signalprocessing.Convolve1D
    • pylops.signalprocessing.Convolve2D
    • pylops.signalprocessing.ConvolveND
    • pylops.signalprocessing.NonStationaryConvolve1D
    • pylops.signalprocessing.NonStationaryConvolve2D
    • pylops.signalprocessing.NonStationaryConvolve3D
    • pylops.signalprocessing.NonStationaryFilters1D
    • pylops.signalprocessing.NonStationaryFilters2D
    • pylops.signalprocessing.Interp
    • pylops.signalprocessing.InterpCubicSpline
    • pylops.signalprocessing.Bilinear
    • pylops.signalprocessing.FFT
    • pylops.signalprocessing.FFT2D
    • pylops.signalprocessing.FFTND
    • pylops.signalprocessing.Shift
    • pylops.signalprocessing.DWT
    • pylops.signalprocessing.DWT2D
    • pylops.signalprocessing.DWTND
    • pylops.signalprocessing.DCT
    • pylops.signalprocessing.DTCWT
    • pylops.signalprocessing.Seislet
    • pylops.signalprocessing.Radon2D
    • pylops.signalprocessing.Radon3D
    • pylops.signalprocessing.FourierRadon2D
    • pylops.signalprocessing.FourierRadon3D
    • pylops.signalprocessing.ChirpRadon2D
    • pylops.signalprocessing.ChirpRadon3D
    • pylops.signalprocessing.PWSprayer2D
    • pylops.signalprocessing.PWSmoother2D
    • pylops.signalprocessing.Sliding1D
    • pylops.signalprocessing.Sliding2D
    • pylops.signalprocessing.Sliding3D
    • pylops.signalprocessing.Patch2D
    • pylops.signalprocessing.Patch3D
    • pylops.signalprocessing.Fredholm1
    • pylops.waveeqprocessing.PressureToVelocity
    • pylops.waveeqprocessing.UpDownComposition2D
    • pylops.waveeqprocessing.UpDownComposition3D
    • pylops.waveeqprocessing.BlendingContinuous
    • pylops.waveeqprocessing.BlendingGroup
    • pylops.waveeqprocessing.BlendingHalf
    • pylops.waveeqprocessing.MDC
    • pylops.waveeqprocessing.PhaseShift
    • pylops.waveeqprocessing.Kirchhoff
    • pylops.waveeqprocessing.AcousticWave2D
    • pylops.avo.avo.AVOLinearModelling
    • pylops.avo.poststack.PoststackLinearModelling
    • pylops.avo.prestack.PrestackLinearModelling
    • pylops.avo.prestack.PrestackWaveletModelling
    • pylops.medical.CT2D
    • pylops.medical.MRI2D
    • pylops.optimization.basesolver.Solver
    • pylops.optimization.cls_basic.CG
    • pylops.optimization.cls_basic.CGLS
    • pylops.optimization.cls_basic.LSQR
    • pylops.optimization.basic.cg
    • pylops.optimization.basic.cgls
    • pylops.optimization.basic.lsqr
    • pylops.optimization.cls_leastsquares.NormalEquationsInversion
    • pylops.optimization.cls_leastsquares.RegularizedInversion
    • pylops.optimization.cls_leastsquares.PreconditionedInversion
    • pylops.optimization.leastsquares.normal_equations_inversion
    • pylops.optimization.leastsquares.regularized_inversion
    • pylops.optimization.leastsquares.preconditioned_inversion
    • pylops.optimization.cls_sparsity.IRLS
    • pylops.optimization.cls_sparsity.OMP
    • pylops.optimization.cls_sparsity.ISTA
    • pylops.optimization.cls_sparsity.FISTA
    • pylops.optimization.cls_sparsity.SPGL1
    • pylops.optimization.cls_sparsity.SplitBregman
    • pylops.optimization.sparsity.irls
    • pylops.optimization.sparsity.omp
    • pylops.optimization.sparsity.ista
    • pylops.optimization.sparsity.fista
    • pylops.optimization.sparsity.spgl1
    • pylops.optimization.sparsity.splitbregman
    • pylops.optimization.callback.Callbacks
    • pylops.optimization.callback.CostNanInfCallback
    • pylops.optimization.callback.CostToDataCallback
    • pylops.optimization.callback.CostToInitialCallback
    • pylops.optimization.callback.MetricsCallback
    • pylops.waveeqprocessing.SeismicInterpolation
    • pylops.waveeqprocessing.Deghosting
    • pylops.waveeqprocessing.WavefieldDecomposition
    • pylops.waveeqprocessing.MDD
    • pylops.waveeqprocessing.Marchenko
    • pylops.waveeqprocessing.LSM
    • pylops.avo.poststack.PoststackInversion
    • pylops.avo.prestack.PrestackInversion
  • 🔩 PyLops Utilities
    • pylops.utils.dottest
    • pylops.utils.decorators.add_ndarray_support_to_solver
    • pylops.utils.decorators.disable_ndarray_multiplication
    • pylops.utils.decorators.reshaped
    • pylops.utils.describe.describe
    • pylops.utils.estimators.trace_hutchinson
    • pylops.utils.estimators.trace_hutchpp
    • pylops.utils.estimators.trace_nahutchpp
    • pylops.utils.metrics.mae
    • pylops.utils.metrics.mse
    • pylops.utils.metrics.snr
    • pylops.utils.metrics.psnr
    • pylops.avo.avo.zoeppritz_scattering
    • pylops.avo.avo.zoeppritz_element
    • pylops.avo.avo.zoeppritz_pp
    • pylops.avo.avo.approx_zoeppritz_pp
    • pylops.avo.avo.akirichards
    • pylops.avo.avo.fatti
    • pylops.avo.avo.ps
    • pylops.utils.scalability_test
    • pylops.signalprocessing.sliding1d.sliding1d_design
    • pylops.signalprocessing.sliding2d.sliding2d_design
    • pylops.signalprocessing.sliding3d.sliding3d_design
    • pylops.signalprocessing.patch2d.patch2d_design
    • pylops.signalprocessing.patch3d.patch3d_design
    • pylops.utils.seismicevents.makeaxis
    • pylops.utils.seismicevents.linear2d
    • pylops.utils.seismicevents.parabolic2d
    • pylops.utils.seismicevents.hyperbolic2d
    • pylops.utils.seismicevents.linear3d
    • pylops.utils.seismicevents.parabolic3d
    • pylops.utils.seismicevents.hyperbolic3d
    • pylops.waveeqprocessing.marchenko.directwave
    • pylops.utils.signalprocessing.convmtx
    • pylops.utils.signalprocessing.nonstationary_convmtx
    • pylops.utils.signalprocessing.dip_estimate
    • pylops.utils.signalprocessing.slope_estimate
    • pylops.utils.signalprocessing.pwd_slope_estimate
    • pylops.utils.tapers.taper2d
    • pylops.utils.tapers.taper3d
    • pylops.utils.tapers.tapernd
    • pylops.utils.wavelets.gaussian
    • pylops.utils.wavelets.klauder
    • pylops.utils.wavelets.ormsby
    • pylops.utils.wavelets.ricker

Getting involved:

  • 🖌️ Implementing new operators
  • 🔥 Implementing new solvers
  • ❤️ Contributing
  • 🗞 Changelog
  • 🔖 Papers using PyLops
  • ✏️ How to cite
  • 🧑‍🤝‍🧑 Contributors
  1. PyLops /
  2. 🔗 Extensions

🔗 Extensions¶

PyLops brings to users the power of linear operators in a simple and easy to use programming interface.

While very powerful on its own, this library is further extended to take advantage of more advanced computational resources, either in terms of multiple-node clusters or GPUs. Moreover, some independent libraries are created to use third party software that cannot be included as dependencies to our main library for licensing issues but may be useful for academic purposes.

Spin-off projects that aim at extending the capabilities of PyLops are:

  • PyLops-MPI: PyLops for distributed systems with many computing nodes using MPI

  • PyProximal: Proximal solvers which integrate with PyLops Linear Operators.

  • Curvelops: Python wrapper for the Curvelab 2D and 3D digital curvelet transforms.

  • PyLops-GPU : PyLops for GPU arrays (unmantained! the core features are now incorporated into PyLops).

  • PyLops-Distributed : PyLops for distributed systems with many computing nodes using Dask (unmantained!).

Previous
🎮 GPU / TPU Support
Next
📚 Tutorials

2026, PyLops Development Team

Made with Sphinx and Shibuya theme.