coo_array#
- class scipy.sparse.coo_array(arg1, shape=None, dtype=None, copy=False, *, maxprint=None)[source]#
- A sparse array in COOrdinate format. - Also known as the ‘ijv’ or ‘triplet’ format. - This can be instantiated in several ways:
- coo_array(D)
- where D is an ndarray 
- coo_array(S)
- with another sparse array or matrix S (equivalent to S.tocoo()) 
- coo_array(shape, [dtype])
- to construct an empty sparse array with shape - shapedtype is optional, defaulting to dtype=’d’.
- coo_array((data, coords), [shape])
- to construct from existing data and index arrays:
- data[:] the entries of the sparse array, in any order 
- coords[i][:] the axis-i coordinates of the data entries 
 
 - Where - A[coords] = data, and coords is a tuple of index arrays. When shape is not specified, it is inferred from the index arrays.
 
 - Attributes:
- dtypedtype
- Data type of the sparse array 
- shapetuple of integers
- Shape of the sparse array 
- ndimint
- Number of dimensions of the sparse array 
- nnz
- Number of stored values, including explicit zeros. 
- size
- Number of stored values. 
- data
- COO format data array of the sparse array 
- coords
- COO format tuple of index arrays 
- has_canonical_formatbool
- Whether the matrix has sorted coordinates and no duplicates 
- format
- Format string for matrix. 
- T
- Transpose. 
 
 - Methods - __len__()- arcsin()- Element-wise arcsin. - arcsinh()- Element-wise arcsinh. - arctan()- Element-wise arctan. - arctanh()- Element-wise arctanh. - argmax([axis, out, explicit])- Return indices of maximum elements along an axis. - argmin([axis, out, explicit])- Return indices of minimum elements along an axis. - asformat(format[, copy])- Return this array/matrix in the passed format. - astype(dtype[, casting, copy])- Cast the array/matrix elements to a specified type. - ceil()- Element-wise ceil. - conj([copy])- Element-wise complex conjugation. - conjugate([copy])- Element-wise complex conjugation. - copy()- Returns a copy of this array/matrix. - count_nonzero([axis])- Number of non-zero entries, equivalent to - deg2rad()- Element-wise deg2rad. - diagonal([k])- Returns the kth diagonal of the array/matrix. - dot(other)- Return the dot product of two arrays. - Remove zero entries from the array/matrix - expm1()- Element-wise expm1. - floor()- Element-wise floor. - log1p()- Element-wise log1p. - max([axis, out, explicit])- Return the maximum of the array/matrix or maximum along an axis. - maximum(other)- Element-wise maximum between this and another array/matrix. - mean([axis, dtype, out])- Compute the arithmetic mean along the specified axis. - min([axis, out, explicit])- Return the minimum of the array/matrix or maximum along an axis. - minimum(other)- Element-wise minimum between this and another array/matrix. - multiply(other)- Element-wise multiplication by another array/matrix. - nanmax([axis, out, explicit])- Return the maximum, ignoring any Nans, along an axis. - nanmin([axis, out, explicit])- Return the minimum, ignoring any Nans, along an axis. - nonzero()- Nonzero indices of the array/matrix. - power(n[, dtype])- This function performs element-wise power. - rad2deg()- Element-wise rad2deg. - reshape(self, shape[, order, copy])- Gives a new shape to a sparse array/matrix without changing its data. - resize(*shape)- Resize the array/matrix in-place to dimensions given by - shape- rint()- Element-wise rint. - setdiag(values[, k])- Set diagonal or off-diagonal elements of the array/matrix. - sign()- Element-wise sign. - sin()- Element-wise sin. - sinh()- Element-wise sinh. - sqrt()- Element-wise sqrt. - sum([axis, dtype, out])- Sum the array/matrix elements over a given axis. - Eliminate duplicate entries by adding them together - tan()- Element-wise tan. - tanh()- Element-wise tanh. - tensordot(other[, axes])- Return the tensordot product with another array along the given axes. - toarray([order, out])- Return a dense ndarray representation of this sparse array/matrix. - tobsr([blocksize, copy])- Convert this array/matrix to Block Sparse Row format. - tocoo([copy])- Convert this array/matrix to COOrdinate format. - tocsc([copy])- Convert this array/matrix to Compressed Sparse Column format - tocsr([copy])- Convert this array/matrix to Compressed Sparse Row format - todense([order, out])- Return a dense representation of this sparse array. - todia([copy])- Convert this array/matrix to sparse DIAgonal format. - todok([copy])- Convert this array/matrix to Dictionary Of Keys format. - tolil([copy])- Convert this array/matrix to List of Lists format. - trace([offset])- Returns the sum along diagonals of the sparse array/matrix. - transpose([axes, copy])- Reverses the dimensions of the sparse array/matrix. - trunc()- Element-wise trunc. - __mul__ - Notes - Sparse arrays 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 arrays 
- Once a COO array 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) 
 
- Canonical format
- Entries and coordinates sorted by row, then column. 
- There are no duplicate entries (i.e. duplicate (i,j) locations) 
- Data arrays MAY have explicit zeros. 
 
 - Examples - >>> # Constructing an empty sparse array >>> import numpy as np >>> from scipy.sparse import coo_array >>> coo_array((3, 4), dtype=np.int8).toarray() array([[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], dtype=int8) - >>> # Constructing a sparse array 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_array((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 sparse array with duplicate coordinates >>> 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_array((data, (row, col)), shape=(4, 4)) >>> # Duplicate coordinates 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]])