Skip to main content
`Ctrl`+`K`
scipy.sparse.linalg.

# norm

scipy.sparse.linalg.norm(x, ord=None, axis=None)

  Norm of a sparse matrix

  This function is able to return one of seven different matrix norms, depending on the value of the `ord` parameter.

  Parameters:
    xa sparse array

      Input sparse array.

    ord{non-zero int, inf, -inf, ‘fro’}, optional

      Order of the norm (see table under `Notes`). inf means numpy’s inf object.

    axis{int, 2-tuple of ints, None}, optional

      If axis is an integer, it specifies the axis of x along which to compute the vector norms. If axis is a 2-tuple, it specifies the axes that hold 2-D matrices, and the matrix norms of these matrices are computed. If axis is None then either a vector norm (when x is 1-D) or a matrix norm (when x is 2-D) is returned.

  Returns:
    nfloat or ndarray

  Notes

  Some of the ord are not implemented because some associated functions like, _multi_svd_norm, are not yet available for sparse array.

  This docstring is modified based on numpy.linalg.norm. numpy/numpy

  The following norms can be calculated:

  ord | norm for sparse arrays
  --- | ---
  None | Frobenius norm
  ‘fro’ | Frobenius norm
  inf | max(sum(abs(x), axis=1))
  -inf | min(sum(abs(x), axis=1))
  0 | abs(x).sum(axis=axis)
  1 | max(sum(abs(x), axis=0))
  -1 | min(sum(abs(x), axis=0))
  2 | Spectral norm (the largest singular value)
  -2 | Not implemented
  other | Not implemented

  The Frobenius norm is given by [1]:

  > \(||A||_F = [\sum_{i,j} abs(a_{i,j})^2]^{1/2}\)

  References

  [1]

  G. H. Golub and C. F. Van Loan, Matrix Computations, Baltimore, MD, Johns Hopkins University Press, 1985, pg. 15

  Examples

      >>> from scipy.sparse import csr_array, diags_array
      >>> import numpy as np
      >>> from scipy.sparse.linalg import norm
      >>> a = np.arange(9) - 4
      >>> a
      array([-4, -3, -2, -1, 0, 1, 2, 3, 4])
      >>> b = a.reshape((3, 3))
      >>> b
      array([[-4, -3, -2],
             [-1, 0, 1],
             [ 2, 3, 4]])

      >>> b = csr_array(b)
      >>> norm(b)
      7.745966692414834
      >>> norm(b, 'fro')
      7.745966692414834
      >>> norm(b, np.inf)
      9
      >>> norm(b, -np.inf)
      2
      >>> norm(b, 1)
      7
      >>> norm(b, -1)
      6

  The matrix 2-norm or the spectral norm is the largest singular value, computed approximately and with limitations.

      >>> b = diags_array([-1, 1], offsets=[0, 1], shape=(9, 10))
      >>> norm(b, 2)
      1.9753...