Skip to main content
`Ctrl`+`K`
scipy.sparse.

# bmat

scipy.sparse.bmat(blocks, format=None, dtype=None)

  Build a sparse array or matrix from sparse sub-blocks.

  Note: `block_array` is preferred over `bmat`. They are the same function except that `bmat` returns a deprecated sparse matrix when none of the inputs are sparse arrays.

  Warning

  This function returns a sparse matrix when no inputs are sparse arrays. You are encouraged to use `block_array` to take advantage of the sparse array functionality.

  Parameters:
    blocks array_like

      Grid of sparse matrices with compatible shapes. An entry of None implies an all-zero matrix.

    format{‘bsr’, ‘coo’, ‘csc’, ‘csr’, ‘dia’, ‘dok’, ‘lil’}, optional

      The sparse format of the result (e.g. “csr”). By default an appropriate sparse matrix format is returned. This choice is subject to change.

    dtype dtype, optional

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

  Returns:
    bmat sparse matrix or array

      If any block in blocks is a sparse array, return a sparse array. Otherwise return a sparse matrix.

      If you want a sparse array built from blocks that are not sparse arrays, use `block_array()`.

  See also

  `block_array`

  Examples

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

      >>> bmat([[A, None], [None, C]]).toarray()
      array([[1, 2, 0],
             [3, 4, 0],
             [0, 0, 7]])