scipy.sparse.

dok_array#

class scipy.sparse.dok_array(arg1, shape=None, dtype=None, copy=False, *, maxprint=None)[source]#

Dictionary Of Keys based sparse array.

This is an efficient structure for constructing sparse arrays incrementally.

This can be instantiated in several ways:
dok_array(D)

where D is a 2-D ndarray

dok_array(S)

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

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

create the array with initial shape (M,N) dtype is optional, defaulting to dtype=’d’

Attributes:
dtypedtype

Data type of the array

shape2-tuple

Shape of the array

ndimint

Number of dimensions (this is always 2)

formatstr

Format string for matrix.

nnzint

Number of stored values, including explicit zeros.

sizeint

Number of stored values.

Tdok_array

Transpose.

Methods

__len__()

Return len(self).

asformat(format[, copy])

Return this array/matrix in the passed format.

astype(dtype[, casting, copy])

Cast the array/matrix elements to a specified type.

clear()

Remove all items from the dok_array.

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.

diagonal([k])

Returns the kth diagonal of the array/matrix.

dot(other)

Ordinary dot product.

fromkeys(iterable[, value])

Create a new dictionary with keys from iterable and values set to value.

get(key[, default])

This provides dict.get method functionality with type checking.

items()

Return a set-like object providing a view on the array's items.

keys()

Return a set-like object providing a view on the dict's keys.

maximum(other)

Element-wise maximum between this and another array/matrix.

mean([axis, dtype, out])

Compute the arithmetic mean along the specified axis.

minimum(other)

Element-wise minimum between this and another array/matrix.

multiply(other)

Element-wise multiplication by another array/matrix.

nonzero()

Nonzero indices of the array/matrix.

pop(key[, default])

Remove specified key and return the corresponding value.

popitem()

Remove and return a (key, value) pair as a 2-tuple, returned in LIFO (last-in, first-out) order.

power(n[, dtype])

Element-wise power.

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.

setdefault(key[, default])

Insert key with a value of default if key is not in the dictionary.

setdiag(values[, k])

Set diagonal or off-diagonal elements of the array/matrix.

sum([axis, dtype, out])

Sum the array/matrix elements over a given axis.

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.

update(val)

Update values from a dict, sparse dok or iterable of 2-tuples like .items().

values()

Return an object providing a view on the dict's values.

__add__

__getitem__

__matmul__

__mul__

__pow__

__rmatmul__

__rmul__

__truediv__

Notes

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

  • Allows for efficient O(1) access of individual elements.

  • Duplicates are not allowed.

  • Can be efficiently converted to a coo_array once constructed.

Examples

>>> import numpy as np
>>> from scipy.sparse import dok_array
>>> S = dok_array((5, 5), dtype=np.float32)
>>> for i in range(5):
...     for j in range(5):
...         S[i, j] = i + j    # Update element