[SciPy-User] symmetric lil_matrix

David Warde-Farley dwf@cs.toronto....
Sat Aug 29 21:32:20 CDT 2009

On 29-Aug-09, at 6:21 PM, T J wrote:

> In constructing a scipy.sparse.lil_matrix, is there any built-in
> functionality to support symmetric matrices?

No, but such functionality would be easy to add by subclassing.

import scipy.sparse

class sym_lil_matrix(scipy.sparse.lil_matrix):
	def __setitem__(self, index, x):
		super(sym_lil_matrix, self).__setitem__(index, x)
		super(sym_lil_matrix, self).__setitem__(index[::-1], x)

You could add a custom constructor but it's unclear what the semantics  
ought to be there.

> Was wondering if m[2,1] could be automatically added if one declared
> the lil_matrix as symmetric.  Also, the data structure says it has 2
> stored elements.  Is it actually storing two elements?


> My hope is that additional "sparseness" could be gained if it is known
> that the matrix is symmetric.

That would require considerably more thought (in order to implement  
all of the interface that needs to be aware of this duplication) but  
is certainly possible. It hardly seems worth it unless your matrices  
are positively gigantic and can't fit into memory.


More information about the SciPy-User mailing list