[SciPy-user] more help with sparse matrix: creating

Robin robince@gmail....
Mon Oct 8 06:10:08 CDT 2007


On 10/8/07, Robin <robince@gmail.com> wrote:

> How would I achieve a similar thing in numpy (to first allocate with fixed
> nnz, then fill in sections), preferably with slicing/fancy indexing?
> (I was reading about lil_matrix etc. but it wasn't clear to me how to do
> the above)


So as I understand to allocate the sparse array with a specified nnz I have
to use sparse.csr_matrix, since lil_matrix constructor doesn't seem to
support this.

Then I need to convert my allocated csr matrix  in place to lil format so
that I can do fancy indexing to fill it as required  - how can I do this in
place without making another copy of the data?
Once filled I need to convert back to csr again to do matrix vector
multiplication and save to matlab file.

Does this seem correct?

Unfortunately I have a problem with the first step, trying to allocate an
empty csr matrix:
>From the doc string:
      - csr_matrix((M, N), [nzmax, dtype])
        to construct a container, where (M, N) are dimensions and
        nzmax, dtype are optional, defaulting to nzmax=sparse.NZMAX
        and dtype='d'.

However when I try to include the nzmax argument I get the following error:

In [102]: B = sparse.csr_matrix((10,10),[10,'b'])
---------------------------------------------------------------------------
<type 'exceptions.NotImplementedError'>   Traceback (most recent call last)

/home/robince/<ipython console> in <module>()

/usr/lib/python2.5/site-packages/scipy/sparse/sparse.py in __init__(self,
arg1, dims, nzmax, dtype, copy, check)
   1307                 N = max(oldN, N)
   1308
-> 1309         self.shape = (M, N)
   1310
   1311         self._check(check)

/usr/lib/python2.5/site-packages/scipy/sparse/sparse.py in set_shape(self,
shape)
    111             except NotImplementedError:
    112                 raise NotImplementedError("Reshaping not implemented
for %s." %
--> 113                                           self.__class__.__name__)
    114         self._shape = shape
    115

<type 'exceptions.NotImplementedError'>: Reshaping not implemented for
csr_matrix.

Am I doing something wrong? Is there a better way to achieve what I'm trying
to do?

Thanks,

Robin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://projects.scipy.org/pipermail/scipy-user/attachments/20071008/2c4b83f5/attachment.html 


More information about the SciPy-user mailing list