title: Which sparse matrix format is preferable for the construction of block matrices
body: <p>I would like to construct a block matrix using one of the corresponding <a href="https://docs.scipy.org/doc/scipy/reference/sparse.html" rel="nofollow noreferrer">scipy</a> formats. Ultimately, the matrix must be converted to CSC.</p>
  
  <p>I essentially obtain the blocks as (dense) numpy arrays (having <code>ndim == 2</code>) or occasionally as sparse identities. For each subset of rows (from top to bottom), I add the corresponding blocks from left to right. Currently I am creating the matrix, then assign the blocks based on slices of indices.</p>
  
  <p>My questions (regarding performance) are the following:</p>
  
  <ol>
  <li>Is it advisable to use slicing or should I use <code>scipy.sparse.bmat</code> instead?</li>
  <li>If I do use slicing, which matrix type should I use to insert the blocks (I assign slices of the form <code>M[a:b,:]</code> and <code>M[:,a:b]</code>)?</li>
  </ol>