title: Is there an efficient way of concatenating scipy.sparse matrices?
body: <p>I'm working with some rather large sparse matrices (from 5000x5000 to 20000x20000) and need to find an efficient way to concatenate matrices in a flexible way in order to construct a stochastic matrix from separate parts.</p>
  
  <p>Right now I'm using the following way to concatenate four matrices, but it's horribly inefficient. Is there any better way to do this that doesn't involve converting to a dense matrix?</p>
  
  <pre><code>rmat[0:m1.shape[0],0:m1.shape[1]] = m1
  rmat[m1.shape[0]:rmat.shape[0],m1.shape[1]:rmat.shape[1]] = m2
  rmat[0:m1.shape[0],m1.shape[1]:rmat.shape[1]] = bridge
  rmat[m1.shape[0]:rmat.shape[0],0:m1.shape[1]] = bridge.transpose()
  </code></pre>