Skip to main content

Python package for solving large scale L1 regularizedleast squares problems.

Project description


This is a large scale L1 regularized Least Square (L1-LS) solver written in Python. The code is based on the MATLAB code made available on Stephen Boyd’s l1_ls page.



You can install the bleeding edge directly from the source:

pip install git+

This package is also available on PyPi.

pip install l1ls


The module exposes two functions:

  • l1ls(A, y, lmbda, x0=None, At=None, m=None, n=None, tar_gap=1e-3, quiet=False, eta=1e-3, pcgmaxi=5000), and,
  • l1ls_nonneg(A, y, lmbda, x0=None, At=None, m=None, n=None, tar_gap=1e-3, quiet=False, eta=1e-3, pcgmaxi=5000)

They can be used as follows:

import l1ls as L
import numpy as np

A = np.array([[1, 0, 0, 0.5], [0, 1, 0.2, 0.3], [0, 0.1, 1, 0.2]])
x0 = np.array([1, 0, 1, 0], dtype='f8')  # Original signal
y =                            # noise free signal
lmbda = 0.01                             # regularization parameter
rel_tol = 0.01

[x, status, hist] = L.l1ls(A, y, lmbda, tar_gap=rel_tol)
# answer_x = np.array([0.993010, 0.00039478, 0.994096, 0.00403702])

If your matrix A is sparse, pass it in CSR format format for best performance.


  • S.-J. Kim, K. Koh, M. Lustig, S. Boyd, and D. Gorinevsky. An Interior-Point Method for Large-Scale l1-Regularized Least Squares, (2007), IEEE Journal on Selected Topics in Signal Processing, 1(4):606-617.

Project details

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page