[SciPy-Dev] Function to check if sparse matrix is symmetric
Nils Wagner
nils106 at googlemail.com
Fri Oct 10 06:49:51 EDT 2014
IMHO "is_Hermitian" is more general.
Nils
On Fri, Oct 10, 2014 at 12:00 PM, Saullo Castro <saullogiovani at gmail.com>
wrote:
> I developed a function (shown below) to check if a sparse matrix is
> symmetric and would like to know if the community is interested to include
> in scipy.sparse.
>
> Regards,
> Saullo
>
> def is_symmetric(m):
> """Check if a sparse matrix is symmetric
>
> Parameters
> ----------
> m : array or sparse matrix
> A square matrix.
>
> Returns
> -------
> check : bool
> The check result.
>
> """
> if m.shape[0] != m.shape[1]:
> raise ValueError('m must be a square matrix')
>
> if not isinstance(m, coo_matrix):
> m = coo_matrix(m)
>
> r, c, v = m.row, m.col, m.data
> tril_no_diag = r > c
> triu_no_diag = c > r
>
> if triu_no_diag.sum() != tril_no_diag.sum():
> return False
>
> rl = r[tril_no_diag]
> cl = c[tril_no_diag]
> vl = v[tril_no_diag]
> ru = r[triu_no_diag]
> cu = c[triu_no_diag]
> vu = v[triu_no_diag]
>
> sortl = np.lexsort((cl, rl))
> sortu = np.lexsort((ru, cu))
> vl = vl[sortl]
> vu = vu[sortu]
>
> check = np.allclose(vl, vu)
>
> return check
>
>
> _______________________________________________
> SciPy-Dev mailing list
> SciPy-Dev at scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scipy-dev/attachments/20141010/34aab777/attachment.html>
More information about the SciPy-Dev
mailing list