[SciPy-user] New sparse matrix functionality
Ed Schofield
schofield at ftw.at
Mon Feb 27 17:21:41 CST 2006
Hi Robert,
On 27/02/2006, at 11:23 AM, Robert Cimrman wrote:
> well done! I think it's better your way - if a vector (i.e. 2D
> array) is
> put in, it is expected that a vector goes out as well.
Okay, great. This was probably the only change that could be
controversial, so if you're happy (and nobody else objects) I'll
merge the whole patch.
> Do you also plan to add the c-based linked-list matrix as in PySparse
> (ll_mat.c there)? This could be even faster than using the Python
> lists
> (IMHO...).
Well, I guess it would be nice to have, and the code's already
written, but I don't know how we'd make it derive from the spmatrix
base class, which is written in Python. Travis mentioned back in
October that this is possible but not easy. So it would require some
work. I don't need the extra speed personally -- the new class seems
to be fast enough for my needs (the bottleneck for my work is now
elsewhere :)
>> These changes have highlighted a problem present in both the main
>> trunk
>> and my branch: that multiplying a dense matrix 'a' by a sparse matrix
>> 'b' is not possible using the syntax 'a*b'. I'll follow this up
>> with a
>> proposal to numpy-discussion on how we can solve this.
>
> I am very curious how to do this. Surely NumPy will have to be
> aware of
> existence of sparse matrix objects, right?
An update: I've changed the matrix.__mul__ function in NumPy SVN to
return NotImplemented if the right operand defines __rmul__ and isn't
a NumPy-compatible type. This seems to work fine for * now.
Functions like numpy.dot() still won't work on sparse matrices, but I
don't really have a problem with this ;)
-- Ed
More information about the SciPy-user
mailing list