This is a pre-release version (2.0.0.dev0+git20260907.41eeb59).Go to latest (1.18.0)
{ } Raw JSON

bundles / scipy 2.0.0.dev0+git20260907.41eeb59 / scipy / sparse / _csc / csc_matrix

ABCMeta

scipy.sparse._csc:csc_matrix

source: build-install/usr/lib/python3.14/site-packages/scipy/sparse/_csc.py:305

Signature

def csc_matrix(*args, **kwargs)

Summary

Compressed Sparse Column matrix.

Extended Summary

This can be instantiated in several ways:

csc_matrix(D)

where D is a 2-D ndarray

csc_matrix(S)

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

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

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

csc_matrix((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_matrix((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 matrix dimensions are inferred from the index arrays.

Attributes

data : ndarray

CSC format data array of the matrix

indices : ndarray

CSC format index array of the matrix

indptr : ndarray

CSC format index pointer array of the matrix

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 matrix

shape : 2-tuple

Shape of the matrix

ndim : int

Number of dimensions (this is always 2)

format : str

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

nnz : int

Number of values stored in the matrix

size : int

Number of values stored in the matrix

T : csc_matrix

The transpose of the matrix

mT : csc_matrix

The matrix transpose

Notes

Sparse matrices 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_matrix
csc_matrix((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_matrix((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_matrix((data, indices, indptr), shape=(3, 3)).toarray()
✓
array([[1, 0, 4],
       [0, 0, 5],
       [2, 3, 6]])

Aliases

  • scipy.sparse.csc_matrix