[SciPy-dev] Ideas for scipy.sparse?
Nathan Bell
wnbell at gmail.com
Mon Apr 14 19:55:19 EDT 2008
On Mon, Apr 14, 2008 at 1:36 PM, Viral Shah
<vshah at interactivesupercomputing.com> wrote:
> Some people pointed out that this tends to be slow when called in for
> loops. I couldn't figure out what the cause of this was. Is it that
> for loops in python are generally slow, or is it that indexing
> individual elements in sparse data structures is slow or are python's
> data structures slow, or some combination of all three ?
Currently all access of the form A[1,2] are implemented in pure Python
(even CSR/CSC). Looping in Python comes with a certain amount of
overhead itself, however, I'd wager most time is spent doing the
actual indexing.
We can speed up the case A[[1,2,3],[5,6,7]] by sending the index
arrays over to sparsetools. However, as you point out, individual
lookups will always be slow.
> I thought initially that dok may solve this for some kinds of sparse
> matrix problems, but it seems that its too slow for large problems.
> Perhaps a little benchmark must be setup.
In my experience DOK/LIL are too slow for large matrices. This is a
shame, because new users will want to construct matrices with one of
these classes. More advanced users would probably build a COO
initially and then convert to CSR/CSC.
--
Nathan Bell wnbell at gmail.com
http://graphics.cs.uiuc.edu/~wnbell/
More information about the SciPy-Dev
mailing list