[Numpy-discussion] arrray/matrix nonzero() type
Nicolas Rougier
Nicolas.Rougier at loria.fr
Wed May 27 15:26:08 EDT 2009
Hi again,
I have a problem with the nonzero() function for matrix.
The following test program:
import numpy, scipy.sparse
Z = numpy.zeros((10,10))
Z[0,0] = Z[1,1] = 1
i = Z.nonzero()
print i
Zc = scipy.sparse.coo_matrix((Z[i],i))
Z = numpy.matrix(Z)
i = Z.nonzero()
print i
Zc = scipy.sparse.coo_matrix((Z[i],i))
gives me:
(array([0, 1]), array([0, 1]))
(matrix([[0, 1]]), matrix([[0, 1]]))
Traceback (most recent call last):
File "test.py", line 13, in <module>
Zc = scipy.sparse.coo_matrix((Z[i],i))
File "/Volumes/Data/Local/lib/python2.6/site-packages/scipy/sparse/
coo.py", line 179, in __init__
self._check()
File "/Volumes/Data/Local/lib/python2.6/site-packages/scipy/sparse/
coo.py", line 194, in _check
nnz = self.nnz
File "/Volumes/Data/Local/lib/python2.6/site-packages/scipy/sparse/
coo.py", line 187, in getnnz
raise ValueError('row, column, and data arrays must have rank 1')
ValueError: row, column, and data arrays must have rank 1
Is that the intended behavior ? How can I use nonzero with matrix to
build the coo one ?
Nicolas
More information about the NumPy-Discussion
mailing list