scipy.sparse.block_diag#

scipy.sparse.block_diag(mats, format=None, dtype=None)[source]#

Build a block diagonal sparse matrix or array from provided matrices.

Parameters:
matssequence of matrices or arrays

Input matrices or arrays.

formatstr, optional

The sparse format of the result (e.g., “csr”). If not given, the result is returned in “coo” format.

dtypedtype specifier, optional

The data-type of the output. If not given, the dtype is determined from that of blocks.

Returns:
ressparse matrix or array

If at least one input is a sparse array, the output is a sparse array. Otherwise the output is a sparse matrix.

Notes

Added in version 0.11.0.

Examples

>>> from scipy.sparse import coo_array, block_diag
>>> A = coo_array([[1, 2], [3, 4]])
>>> B = coo_array([[5], [6]])
>>> C = coo_array([[7]])
>>> block_diag((A, B, C)).toarray()
array([[1, 2, 0, 0],
       [3, 4, 0, 0],
       [0, 0, 5, 0],
       [0, 0, 6, 0],
       [0, 0, 0, 7]])