{ } Raw JSON

bundles / scipy 1.18.0 / scipy / sparse / _csc / csc_array

ABCMeta

scipy.sparse._csc:csc_array

source: /scipy/sparse/_csc.py:188

Signature

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

Summary

Compressed Sparse Column array.

Extended Summary

This can be instantiated in several ways:

csc_array(D)

where D is a 2-D ndarray

csc_array(S)

with another sparse array or matrix S (equivalent to S.tocsc())

csc_array((M, N), [dtype])

to construct an empty array with shape (M, N) dtype is optional, defaulting to dtype='d'.

csc_array((data, (row_ind, col_ind)), [shape=(M, N)])

where data, row_ind and col_ind satisfy the relationship a[row_ind[k], col_ind[k]] = data[k].

csc_array((data, indices, indptr), [shape=(M, N)])

is the standard CSC representation where the row indices for column i are stored in indices[indptr[i]:indptr[i+1]] and their corresponding values are stored in data[indptr[i]:indptr[i+1]]. If the shape parameter is not supplied, the array dimensions are inferred from the index arrays.

Attributes

data : ndarray

CSC format data array of the array

indices : ndarray

CSC format index array of the array

indptr : ndarray

CSC format index pointer array of the array

has_sorted_indices : bool

Whether indices are sorted

has_canonical_format : bool

Whether indices are sorted and no duplicate entries exist

dtype : dtype

Data type of the array

shape : 2-tuple

Shape of the array

ndim : int

Number of dimensions (this is always 2)

format : str

Three letter code for the format of the array storage, e.g. 'csc'

nnz : int

Number of values stored in the array

size : int

Number of values stored in the array

T : csc_array

The transpose of the array

mT : csc_array

The matrix transpose of the array

Notes

Sparse arrays can be used in arithmetic operations: they support addition, subtraction, multiplication, division, and matrix power.

Advantages of the CSC format

  • efficient arithmetic operations CSC + CSC, CSC * CSC, etc.

  • efficient column slicing

  • fast matrix vector products (CSR, BSR may be faster)

Disadvantages of the CSC format

  • slow row slicing operations (consider CSR)

  • changes to the sparsity structure are expensive (consider LIL or DOK)

Canonical format

  • Within each column, indices are sorted by row.

  • There are no duplicate entries.

Examples

import numpy as np
from scipy.sparse import csc_array
csc_array((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, 2, 2, 0, 1, 2])
col = np.array([0, 0, 1, 2, 2, 2])
data = np.array([1, 2, 3, 4, 5, 6])
csc_array((data, (row, col)), shape=(3, 3)).toarray()
✓
array([[1, 0, 4],
       [0, 0, 5],
       [2, 3, 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])
csc_array((data, indices, indptr), shape=(3, 3)).toarray()
✓
array([[1, 0, 4],
       [0, 0, 5],
       [2, 3, 6]])

Aliases

  • scipy.sparse.csc_array

Referenced by