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)
nnz
Number 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 shape
rint
(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.