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
Notes
For vectors (1-D arrays) it computes the ordinary inner-product:
np.inner(a,b)=sum(a[:]*b[:])
More generally, if
ndim(a)=r>0andndim(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