# [Scipy-tickets] [SciPy] #1042: sparse matrix failed with element-wise multiplication using numpy.multiply()

SciPy Trac scipy-tickets@scipy....
Thu Apr 18 17:45:22 CDT 2013

```#1042: sparse matrix failed with element-wise multiplication using
numpy.multiply()
--------------------------+-------------------------------------------------
Reporter:  dingle        |       Owner:  wnbell
Type:  defect        |      Status:  new
Priority:  normal        |   Milestone:
Component:  scipy.sparse  |     Version:  0.7.0
Keywords:  multiply      |
--------------------------+-------------------------------------------------

Comment(by cowlicks):

Hello Izzy, by
[http://docs.scipy.org/doc/numpy/reference/generated/numpy.multiply.html
definition] the behavior of {{{numpy.multiply}}} should be pointwise
multiplication. So that should be the expected behavior for this.

However it looks like {{{numpy.multipy}}} calls {{{spmatrix.__mul__}}}
which does matrix multiplication by default. I don't know how to fix this
without changing {{{__mul__}}} to pointwise mult which would break things.

I'm submitting a patch for the {{{sparse.multiply}}} 'inconsistent shapes'
bug that you noted. so it  should work now. If we could somehow redirect
{{{numpy.multiply}}} on {{{spmatrix}}} objects to use {{{ sparse.multiply
}}} I think that would correct the issue initially reported.

{{{nump.matrix}}} has the correct behavior, so we could probably just copy
what it does:
{{{
In [10]: Am, Bm
Out[10]:
(matrix([[4, 1, 1],
[4, 2, 4],
[4, 3, 3]]),
matrix([[4, 4, 1],
[0, 3, 1],
[1, 2, 0]]))

In [11]: np.multiply(Am, Bm)
Out[11]:
matrix([[16,  4,  1],
[ 0,  6,  4],
[ 4,  6,  0]])

In [12]: Am*Bm
Out[12]:
matrix([[17, 21,  5],
[20, 30,  6],
[19, 31,  7]])
}}}

Otherwise, it looks like there is plenty of work for us!

--
Ticket URL: <http://projects.scipy.org/scipy/ticket/1042#comment:3>
SciPy <http://www.scipy.org>
SciPy is open-source software for mathematics, science, and engineering.
```