Existe uma maneira eficiente de concatenar matrizes scipy.spars

Estou trabalhando com algumas matrizes esparsas bastante grandes (de 5000x5000 a 20000x20000) e preciso encontrar uma maneira eficiente de concatenar matrizes de maneira flexível, a fim de construir uma matriz estocástica a partir de partes separada

gora, estou usando a seguinte maneira de concatenar quatro matrizes, mas é terrivelmente ineficiente. Existe alguma maneira melhor de fazer isso que não envolva a conversão em uma matriz densa?

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()

questionAnswers(4)

yourAnswerToTheQuestion