scipy.sparse.coo_matrix¶
-
class
scipy.sparse.coo_matrix(arg1, shape=None, dtype=None, copy=False)[source]¶ A sparse matrix in COOrdinate format.
Also known as the ‘ijv’ or ‘triplet’ format.
- This can be instantiated in several ways:
- coo_matrix(D)
- with a dense matrix D
- coo_matrix(S)
- with another sparse matrix S (equivalent to S.tocoo())
- coo_matrix((M, N), [dtype])
- to construct an empty matrix with shape (M, N) dtype is optional, defaulting to dtype=’d’.
- coo_matrix((data, (i, j)), [shape=(M, N)])
- to construct from three arrays:
- data[:] the entries of the matrix, in any order
- i[:] the row indices of the matrix entries
- j[:] the column indices of the matrix entries
Where
A[i[k], j[k]] = data[k]. When shape is not specified, it is 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 COO format
- facilitates fast conversion among sparse formats
- permits duplicate entries (see example)
- very fast conversion to and from CSR/CSC formats
- Disadvantages of the COO format
- does not directly support:
- arithmetic operations
- slicing
- Intended Usage
- COO is a fast format for constructing sparse matrices
- Once a matrix has been constructed, convert to CSR or CSC format for fast arithmetic and matrix vector operations
- By default when converting to CSR or CSC format, duplicate (i,j) entries will be summed together. This facilitates efficient construction of finite element matrices and the like. (see example)
Examples
>>> # Constructing an empty matrix >>> from scipy.sparse import coo_matrix >>> coo_matrix((3, 4), dtype=np.int8).toarray() array([[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], dtype=int8)
>>> # Constructing a matrix using ijv format >>> row = np.array([0, 3, 1, 0]) >>> col = np.array([0, 3, 1, 2]) >>> data = np.array([4, 5, 7, 9]) >>> coo_matrix((data, (row, col)), shape=(4, 4)).toarray() array([[4, 0, 9, 0], [0, 7, 0, 0], [0, 0, 0, 0], [0, 0, 0, 5]])
>>> # Constructing a matrix with duplicate indices >>> row = np.array([0, 0, 1, 3, 1, 0, 0]) >>> col = np.array([0, 2, 1, 3, 1, 0, 0]) >>> data = np.array([1, 1, 1, 1, 1, 1, 1]) >>> coo = coo_matrix((data, (row, col)), shape=(4, 4)) >>> # Duplicate indices are maintained until implicitly or explicitly summed >>> np.max(coo.data) 1 >>> coo.toarray() array([[3, 0, 1, 0], [0, 2, 0, 0], [0, 0, 0, 0], [0, 0, 0, 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)
nnzNumber of stored values, including explicit zeros.
- data
COO format data array of the matrix
- row
COO format row index array of the matrix
- col
COO format column index array of the matrix
Methods
arcsin(self)Element-wise arcsin. arcsinh(self)Element-wise arcsinh. arctan(self)Element-wise arctan. arctanh(self)Element-wise arctanh. argmax(self[, axis, out])Return indices of maximum elements along an axis. argmin(self[, axis, out])Return indices of minimum elements along an axis. asformat(self, format[, copy])Return this matrix in the passed format. asfptype(self)Upcast matrix to a floating point format (if necessary) astype(self, dtype[, casting, copy])Cast the matrix elements to a specified type. ceil(self)Element-wise ceil. conj(self[, copy])Element-wise complex conjugation. conjugate(self[, copy])Element-wise complex conjugation. copy(self)Returns a copy of this matrix. count_nonzero(self)Number of non-zero entries, equivalent to deg2rad(self)Element-wise deg2rad. diagonal(self[, k])Returns the k-th diagonal of the matrix. dot(self, other)Ordinary dot product eliminate_zeros(self)Remove zero entries from the matrix expm1(self)Element-wise expm1. floor(self)Element-wise floor. getH(self)Return the Hermitian transpose of this matrix. get_shape(self)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). getformat(self)Format of a matrix representation as a string. getmaxprint(self)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 row i of the matrix, as a (1 x n) sparse matrix (row vector). log1p(self)Element-wise log1p. max(self[, axis, out])Return the maximum of the matrix or maximum along an axis. maximum(self, other)Element-wise maximum between this and another matrix. mean(self[, axis, dtype, out])Compute the arithmetic mean along the specified axis. min(self[, axis, out])Return the minimum of the matrix or maximum along an axis. minimum(self, other)Element-wise minimum between this and another matrix. multiply(self, other)Point-wise multiplication by another matrix nonzero(self)nonzero indices power(self, n[, dtype])This function performs element-wise power. rad2deg(self)Element-wise rad2deg. 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 shaperint(self)Element-wise rint. set_shape(self, shape)See reshape.setdiag(self, values[, k])Set diagonal or off-diagonal elements of the array. sign(self)Element-wise sign. sin(self)Element-wise sin. sinh(self)Element-wise sinh. sqrt(self)Element-wise sqrt. sum(self[, axis, dtype, out])Sum the matrix elements over a given axis. sum_duplicates(self)Eliminate duplicate matrix entries by adding them together tan(self)Element-wise tan. tanh(self)Element-wise tanh. toarray(self[, order, out])See the docstring for spmatrix.toarray.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 LInked List format. transpose(self[, axes, copy])Reverses the dimensions of the sparse matrix. trunc(self)Element-wise trunc.