class scipy.sparse.lil_matrix(arg1, shape=None, dtype=None, copy=False)[source]

Row-based list of lists sparse matrix

This is a structure for constructing sparse matrices incrementally. Note that inserting a single item can take linear time in the worst case; to construct a matrix efficiently, make sure the items are pre-sorted by index, per row.

This can be instantiated in several ways:

with a dense matrix or rank-2 ndarray D


with another sparse matrix S (equivalent to S.tolil())

lil_matrix((M, N), [dtype])

to construct an empty matrix with shape (M, N) dtype is optional, defaulting to dtype=’d’.


Sparse matrices can be used in arithmetic operations: they support addition, subtraction, multiplication, division, and matrix power.

Advantages of the LIL format
  • supports flexible slicing

  • changes to the matrix sparsity structure are efficient

Disadvantages of the LIL format
  • arithmetic operations LIL + LIL are slow (consider CSR or CSC)

  • slow column slicing (consider CSC)

  • slow matrix vector products (consider CSR or CSC)

Intended Usage
  • LIL is a convenient format for constructing sparse matrices

  • once a matrix has been constructed, convert to CSR or CSC format for fast arithmetic and matrix vector operations

  • consider using the COO format when constructing large matrices

Data Structure
  • An array (self.rows) of rows, each of which is a sorted list of column indices of non-zero elements.

  • The corresponding nonzero values are stored in similar fashion in


Data type of the matrix


Get shape of a matrix.


Number of dimensions (this is always 2)


Number of stored values, including explicit zeros.


LIL format data array of the matrix


LIL format row index array of the matrix



__mul__(self, other)

interpret other and call one of the following

asformat(self, format[, copy])

Return this matrix in the passed format.


Upcast matrix to a floating point format (if necessary)

astype(self, dtype[, casting, copy])

Cast the matrix elements to a specified type.

conj(self[, copy])

Element-wise complex conjugation.

conjugate(self[, copy])

Element-wise complex conjugation.


Returns a copy of this matrix.


Number of non-zero entries, equivalent to

diagonal(self[, k])

Returns the kth diagonal of the matrix.

dot(self, other)

Ordinary dot product


Return the Hermitian transpose of this matrix.


Get shape of a matrix.

getcol(self, j)

Returns a copy of column j of the matrix, as an (m x 1) sparse matrix (column vector).


Format of a matrix representation as a string.


Maximum number of elements to display when printed.

getnnz(self[, axis])

Number of stored values, including explicit zeros.

getrow(self, i)

Returns a copy of the ‘i’th row.

getrowview(self, i)

Returns a view of the ‘i’th row (without copying).

maximum(self, other)

Element-wise maximum between this and another matrix.

mean(self[, axis, dtype, out])

Compute the arithmetic mean along the specified axis.

minimum(self, other)

Element-wise minimum between this and another matrix.

multiply(self, other)

Point-wise multiplication by another matrix


nonzero indices

power(self, n[, dtype])

Element-wise power.

reshape(self, shape[, order, copy])

Gives a new shape to a sparse matrix without changing its data.

resize(self, *shape)

Resize the matrix in-place to dimensions given by shape

set_shape(self, shape)

See reshape.

setdiag(self, values[, k])

Set diagonal or off-diagonal elements of the array.

sum(self[, axis, dtype, out])

Sum the matrix elements over a given axis.

toarray(self[, order, out])

Return a dense ndarray representation of this matrix.

tobsr(self[, blocksize, copy])

Convert this matrix to Block Sparse Row format.

tocoo(self[, copy])

Convert this matrix to COOrdinate format.

tocsc(self[, copy])

Convert this matrix to Compressed Sparse Column format.

tocsr(self[, copy])

Convert this matrix to Compressed Sparse Row format.

todense(self[, order, out])

Return a dense matrix representation of this matrix.

todia(self[, copy])

Convert this matrix to sparse DIAgonal format.

todok(self[, copy])

Convert this matrix to Dictionary Of Keys format.

tolil(self[, copy])

Convert this matrix to List of Lists format.

transpose(self[, axes, copy])

Reverses the dimensions of the sparse matrix.


Previous topic


Next topic