de Lenn, Sorry I assumed the nonzero would work for sparse matrices as well.
BUT! -- If the sparse matrix used is the default scipy's sparse.lil_matrix, you just need to print out the representation because the lil_matrix is implemented as a _sequence of non-zero elements_ i.e. just what you need. In other words it is kind of silly to provide a nonzero for lil_matrix because it has _only_ non-zero elements. Well, here is the example: ------------------------------------ >>> from scipy import * >>> A=sparse.lil_matrix((3,3)) >>> A[1,2]=10 >>> A[2,0]=-10 >>> print A (1, 2) 10 (2, 0) -10 >>> ------------------------------------ The only way it could be helpful is if you get a lil_matrix returned as an object from some code and you need to list all the elements... Hope this helps, Nick Vatamaniuc deLenn wrote: > Thanks for the reply. > > 'nonzero' deos not seem to work with sparse matrices. here is an > example: > > > from scipy import * > A = sparse.lil_matrix((3,3)) > A[1,2] = 10 > A[2,0] = -10 > > nonzero(A) > >>> () > > > (I tried it with an ordinary matrix, and it works fine) > > Cheers. > > > > > > > > > > > > > > > > > > Nick Vatamaniuc wrote: > > The function you might want is nonzero() or flatnonzero() > > > > >>> from numpy import * > > > > >>> a=array([ [1,2],[0,4] ]) > > > > >>> a > > array([[1, 2], > > [0, 4]]) > > > > >>> flatnonzero(a) > > array([0, 1, 3]) > > > > nonzero() will return the a sequence of index arrays of non zero > > elements > > flatnonzero() returns the non-zero elements of the flattened version > > of the array. > > > > Cheers, > > Nick Vatamaniuc > > > > > > > > deLenn wrote: > > > Hi, > > > > > > Does scipy have an equivalent to Matlab's 'find' function, to list the > > > indices of all nonzero elements in a sparse matrix? > > > > > > Cheers. -- http://mail.python.org/mailman/listinfo/python-list