{ } Raw JSON

bundles / scipy 1.17.1 / scipy / sparse / _coo / coo_array

ABCMeta

scipy.sparse._coo:coo_array

source: /scipy/sparse/_coo.py :1655

Signature

def   coo_array ( arg1 shape = None dtype = None copy = False * maxprint = None )

Summary

A sparse array in COOrdinate format.

Extended Summary

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 shape dtype 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

dtype : dtype

Data type of the sparse array

shape : tuple of integers

Shape of the sparse array

ndim : int

Number of dimensions of the sparse array

nnz
size
data

COO format data array of the sparse array

coords

COO format tuple of index arrays

has_canonical_format : bool

Whether the matrix has sorted coordinates and no duplicates

format
T

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

import numpy as np
from scipy.sparse import coo_array
coo_array((3, 4), dtype=np.int8).toarray()
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()
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))
np.max(coo.data)
coo.toarray()

Aliases

  • scipy.sparse.coo_array

Referenced by