[SciPy-User] Can I copy a sparse matrix into an existing dense numpy matrix?

Jonathan Guyer guyer@nist....
Mon Feb 6 08:12:19 CST 2012


On Feb 5, 2012, at 10:21 AM, Warren Weckesser wrote:

> 
> 
> On Sun, Feb 5, 2012 at 9:05 AM, Conrad Lee <conradlee@gmail.com> wrote:
> Say I have a huge numpy matrix A taking up tens of gigabytes. It takes a non-negligible amount of time to allocate this memory.
> 
> Let's say I also have a collection of scipy sparse matrices with the same dimensions as the numpy matrix. Sometimes I want to convert one of these sparse matrices into a dense matrix to perform some vectorized operations that can't be performed on sparse matrices.
> 
> Can I load one of these sparse matrices into A rather than re-allocate space each time I want to convert a sparse matrix into a dense matrix? The .toarray() and .todense() methods which are available on scipy sparse matrices do not seem to take an optional dense array argument, but maybe there is some other way to do this.
> 
> (I've also started a stackoverflow version of this question here.)
> 
> Thanks,
> 
> Conrad lee
> 
> 
> 
> If your sparse matrix is in coo format, you can use fancy indexing to assign the values to the existing array.  

Although, unless your sparsity pattern doesn't change (which it may not), you'll need to zero the entire dense array before reassigning, which will also take "a non-negligible amount of time".



More information about the SciPy-User mailing list