scipy.sparse.csr_matrix¶
-
class
scipy.sparse.
csr_matrix
(arg1, shape=None, dtype=None, copy=False)[source]¶ Compressed Sparse Row matrix
- This can be instantiated in several ways:
- csr_matrix(D)
- with a dense matrix or rank-2 ndarray D
- csr_matrix(S)
- with another sparse matrix S (equivalent to S.tocsr())
- csr_matrix((M, N), [dtype])
- to construct an empty matrix with shape (M, N) dtype is optional, defaulting to dtype=’d’.
- csr_matrix((data, (row_ind, col_ind)), [shape=(M, N)])
- where
data
,row_ind
andcol_ind
satisfy the relationshipa[row_ind[k], col_ind[k]] = data[k]
. - csr_matrix((data, indices, indptr), [shape=(M, N)])
- is the standard CSR representation where the column indices for
row i are stored in
indices[indptr[i]:indptr[i+1]]
and their corresponding values are stored indata[indptr[i]:indptr[i+1]]
. If the shape parameter is not supplied, the matrix dimensions are inferred from the index arrays.
Notes
Sparse matrices can be used in arithmetic operations: they support addition, subtraction, multiplication, division, and matrix power.
- Advantages of the CSR format
- efficient arithmetic operations CSR + CSR, CSR * CSR, etc.
- efficient row slicing
- fast matrix vector products
- Disadvantages of the CSR format
- slow column slicing operations (consider CSC)
- changes to the sparsity structure are expensive (consider LIL or DOK)
Examples
>>> import numpy as np >>> from scipy.sparse import csr_matrix >>> csr_matrix((3, 4), dtype=np.int8).toarray() array([[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], dtype=int8)
>>> row = np.array([0, 0, 1, 2, 2, 2]) >>> col = np.array([0, 2, 2, 0, 1, 2]) >>> data = np.array([1, 2, 3, 4, 5, 6]) >>> csr_matrix((data, (row, col)), shape=(3, 3)).toarray() array([[1, 0, 2], [0, 0, 3], [4, 5, 6]])
>>> indptr = np.array([0, 2, 3, 6]) >>> indices = np.array([0, 2, 2, 0, 1, 2]) >>> data = np.array([1, 2, 3, 4, 5, 6]) >>> csr_matrix((data, indices, indptr), shape=(3, 3)).toarray() array([[1, 0, 2], [0, 0, 3], [4, 5, 6]])
As an example of how to construct a CSR matrix incrementally, the following snippet builds a term-document matrix from texts:
>>> docs = [["hello", "world", "hello"], ["goodbye", "cruel", "world"]] >>> indptr = [0] >>> indices = [] >>> data = [] >>> vocabulary = {} >>> for d in docs: ... for term in d: ... index = vocabulary.setdefault(term, len(vocabulary)) ... indices.append(index) ... data.append(1) ... indptr.append(len(indices)) ... >>> csr_matrix((data, indices, indptr), dtype=int).toarray() array([[2, 1, 0, 0], [0, 1, 1, 1]])
Attributes: - dtype : dtype
Data type of the matrix
shape
: 2-tupleGet shape of a matrix.
- ndim : int
Number of dimensions (this is always 2)
nnz
Number of stored values, including explicit zeros.
- data
CSR format data array of the matrix
- indices
CSR format index array of the matrix
- indptr
CSR format index pointer array of the matrix
has_sorted_indices
Determine whether the matrix has sorted indices
Methods
arcsin
()Element-wise arcsin. arcsinh
()Element-wise arcsinh. arctan
()Element-wise arctan. arctanh
()Element-wise arctanh. argmax
([axis, out])Return indices of maximum elements along an axis. argmin
([axis, out])Return indices of minimum elements along an axis. asformat
(format[, copy])Return this matrix in the passed sparse format. asfptype
()Upcast matrix to a floating point format (if necessary) astype
(dtype[, casting, copy])Cast the matrix elements to a specified type. ceil
()Element-wise ceil. check_format
([full_check])check whether the matrix format is valid conj
([copy])Element-wise complex conjugation. conjugate
([copy])Element-wise complex conjugation. copy
()Returns a copy of this matrix. count_nonzero
()Number of non-zero entries, equivalent to deg2rad
()Element-wise deg2rad. diagonal
([k])Returns the k-th diagonal of the matrix. dot
(other)Ordinary dot product eliminate_zeros
()Remove zero entries from the matrix expm1
()Element-wise expm1. floor
()Element-wise floor. getH
()Return the Hermitian transpose of this matrix. get_shape
()Get shape of a matrix. getcol
(i)Returns a copy of column i of the matrix, as a (m x 1) CSR matrix (column vector). getformat
()Format of a matrix representation as a string. getmaxprint
()Maximum number of elements to display when printed. getnnz
([axis])Number of stored values, including explicit zeros. getrow
(i)Returns a copy of row i of the matrix, as a (1 x n) CSR matrix (row vector). log1p
()Element-wise log1p. max
([axis, out])Return the maximum of the matrix or maximum along an axis. maximum
(other)Element-wise maximum between this and another matrix. mean
([axis, dtype, out])Compute the arithmetic mean along the specified axis. min
([axis, out])Return the minimum of the matrix or maximum along an axis. minimum
(other)Element-wise minimum between this and another matrix. multiply
(other)Point-wise multiplication by another matrix, vector, or scalar. nonzero
()nonzero indices power
(n[, dtype])This function performs element-wise power. prune
()Remove empty space after all non-zero elements. rad2deg
()Element-wise rad2deg. reshape
(self, shape[, order, copy])Gives a new shape to a sparse matrix without changing its data. resize
(*shape)Resize the matrix in-place to dimensions given by shape
rint
()Element-wise rint. set_shape
(shape)See reshape
.setdiag
(values[, k])Set diagonal or off-diagonal elements of the array. sign
()Element-wise sign. sin
()Element-wise sin. sinh
()Element-wise sinh. sort_indices
()Sort the indices of this matrix in place sorted_indices
()Return a copy of this matrix with sorted indices sqrt
()Element-wise sqrt. sum
([axis, dtype, out])Sum the matrix elements over a given axis. sum_duplicates
()Eliminate duplicate matrix entries by adding them together tan
()Element-wise tan. tanh
()Element-wise tanh. toarray
([order, out])Return a dense ndarray representation of this matrix. tobsr
([blocksize, copy])Convert this matrix to Block Sparse Row format. tocoo
([copy])Convert this matrix to COOrdinate format. tocsc
([copy])Convert this matrix to Compressed Sparse Column format. tocsr
([copy])Convert this matrix to Compressed Sparse Row format. todense
([order, out])Return a dense matrix representation of this matrix. todia
([copy])Convert this matrix to sparse DIAgonal format. todok
([copy])Convert this matrix to Dictionary Of Keys format. tolil
([copy])Convert this matrix to LInked List format. transpose
([axes, copy])Reverses the dimensions of the sparse matrix. trunc
()Element-wise trunc.