numpy.inner#

numpy.inner(a,b,/)#

Inner product of two arrays.

Ordinary inner product of vectors for 1-D arrays (without complexconjugation), in higher dimensions a sum product over the last axes.

Parameters:
a, barray_like

Ifa andb are nonscalar, their last dimensions must match.

Returns:
outndarray

Ifa andb are bothscalars or both 1-D arrays then a scalar is returned; otherwisean array is returned.out.shape=(*a.shape[:-1],*b.shape[:-1])

Raises:
ValueError

If botha andb are nonscalar and their last dimensions havedifferent sizes.

See also

tensordot

Sum products over arbitrary axes.

dot

Generalised matrix product, using second last dimension ofb.

vecdot

Vector dot product of two arrays.

einsum

Einstein summation convention.

Notes

For vectors (1-D arrays) it computes the ordinary inner-product:

np.inner(a,b)=sum(a[:]*b[:])

More generally, ifndim(a)=r>0 andndim(b)=s>0:

np.inner(a,b)=np.tensordot(a,b,axes=(-1,-1))

or explicitly:

np.inner(a,b)[i0,...,ir-2,j0,...,js-2]=sum(a[i0,...,ir-2,:]*b[j0,...,js-2,:])

In additiona orb may be scalars, in which case:

np.inner(a,b)=a*b

Examples

Ordinary inner product for vectors:

>>>importnumpyasnp>>>a=np.array([1,2,3])>>>b=np.array([0,1,0])>>>np.inner(a,b)2

Some multidimensional examples:

>>>a=np.arange(24).reshape((2,3,4))>>>b=np.arange(4)>>>c=np.inner(a,b)>>>c.shape(2, 3)>>>carray([[ 14,  38,  62],       [ 86, 110, 134]])
>>>a=np.arange(2).reshape((1,1,2))>>>b=np.arange(6).reshape((3,2))>>>c=np.inner(a,b)>>>c.shape(1, 1, 3)>>>carray([[[1, 3, 5]]])

An example whereb is a scalar:

>>>np.inner(np.eye(2),7)array([[7., 0.],       [0., 7.]])
On this page