[SciPy-Dev] Bug in use of np.sign() function with sparse csc_matrix?

Warren Weckesser warren.weckesser at enthought.com
Sun Jan 22 12:52:13 EST 2012


In all the examples that I've tried with a sparse csc_matrix `a`, `sign(a)`
always returns 1.  I expect it to return the matrix of element-wise signs
of a.  For example:

In [1]: from scipy.sparse import csc_matrix

In [2]: a = csc_matrix([[0.0, 1.0, 2.0], [0.0, 0.0, -3.0], [0.0, 0.0, 0.0]])

In [3]: a.todense()
Out[3]:
matrix([[ 0.,  1.,  2.],
        [ 0.,  0., -3.],
        [ 0.,  0.,  0.]])

In [4]: np.sign(a.todense())
Out[4]:
matrix([[ 0.,  1.,  1.],
        [ 0.,  0., -1.],
        [ 0.,  0.,  0.]])

In [5]: np.sign(a)   # Incorrect result?
Out[5]: 1

In [6]: import scipy

In [7]: scipy.__version__
Out[7]: '0.11.0.dev-81dc505'

In [8]: np.__version__
Out[8]: '1.6.1'


I think that's a bug, but if someone knows better, let me know!

Warren
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scipy-dev/attachments/20120122/90932298/attachment.html>


More information about the SciPy-Dev mailing list