[Numpy-discussion] array of matrices

Charles R Harris charlesr.harris at gmail.com
Fri Mar 27 21:48:10 EDT 2009


On Fri, Mar 27, 2009 at 4:43 PM, Robert Kern <robert.kern at gmail.com> wrote:

> On Fri, Mar 27, 2009 at 17:38, Bryan Cole <bryan at cole.uklinux.net> wrote:
> > I have a number of arrays of shape (N,4,4). I need to perform a
> > vectorised matrix-multiplication between pairs of them I.e.
> > matrix-multiplication rules for the last two dimensions, usual
> > element-wise rule for the 1st dimension (of length N).
> >
> > (How) is this possible with numpy?
>
> dot(a,b) was specifically designed for this use case.
>


I think maybe he wants to treat them as stacked matrices.

 In [13]: a = arange(8).reshape(2,2,2)

In [14]: (a[:,:,:,newaxis]*a[:,newaxis,:,:]).sum(-2)
Out[14]:
array([[[ 2,  3],
        [ 6, 11]],

       [[46, 55],
        [66, 79]]])

In [15]: for i in range(2) : dot(a[i],a[i])
   ....:
Out[15]:
array([[ 2,  3],
       [ 6, 11]])
Out[15]:
array([[46, 55],
       [66, 79]])


Although it might be easier to keep them in a list.

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20090327/cdf3f39a/attachment.html>


More information about the NumPy-Discussion mailing list