[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