[SciPy-user] combine two sparse matrices

Nathan Bell wnbell at gmail.com
Sat May 3 11:24:12 EDT 2008


On Sat, May 3, 2008 at 10:16 AM, Robin <robince at gmail.com> wrote:
>  >
>  >  I was wondering what the most (memory) efficient way of combining two
>  >  sparse matrices would be.
>  >
>
>  I'd still appreciate some advice as to the best way to do this. I
>  thought of directly appending to the lists in the lil_matrix, but I
>  would then have to sort them again and I wasn't sure if the object
>  array could take resizing like this.

If you're worried about speed or memory consumption, then you should
avoid lil_matrix and dok_matrix.

The fastest and most memory efficient approach uses coo_matrix:

row = array([2,3,1,4])
col = array([4,2,3,1])
data = array([5,5,5,5])
A = coo_matrix( (data,(row,col)), shape=(5,5)).tocsr()

The conversion to CSR forces a copy, however CSR and COO are so much
more memory efficient than LIL/DOK that it shouldn't matter.

-- 
Nathan Bell wnbell at gmail.com
http://graphics.cs.uiuc.edu/~wnbell/



More information about the SciPy-User mailing list