[Numpy-discussion] Tensor contraction

Friedrich Romstedt friedrichromstedt at gmail.com
Sat Jun 12 17:15:16 EDT 2010


2010/6/12 Alan Bromborsky <abrombo at verizon.net>:
> If I have a single numpy array, for example with 3 indices T_{ijk} and I
> want to sum over two them in the sense of tensor contraction -
>
> T_{k} = \sum_{i=0}^{n-1} T_{iik}.  Is there an easy way to do this with
> numpy?

Also you can give:

T[I, I, :].sum(axis=0)

a try with:

I = numpy.arange(0, n)  .

This has the benefit to not be limited to two-dimensional diagonals,
like .diagonal() is.


But note that for:
T[:, I, I]
the shape is reversed with respect to that of:
T[I, :, I]  and T[I, I, :]  .

I think it should be written in the docs how the shape is derived.

hth,
Friedrich



More information about the NumPy-Discussion mailing list