当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python numpy ma.innerproduct用法及代码示例


本文简要介绍 python 语言中 numpy.ma.innerproduct 的用法。

用法:

ma.innerproduct(a, b, /)

两个数组的内积。

一维数组(没有复共轭)的向量的普通内积,在更高维度上是最后一个轴的和积。

参数

a, b array_like

如果 a 和 b 是非标量,它们的最后一个维度必须匹配。

返回

out ndarray

如果ab都是标量或都是一维数组,则返回标量;否则返回一个数组。out.shape = (*a.shape[:-1], *b.shape[:-1])

抛出

ValueError

如果 a 和 b 都是非标量并且它们的最后一个维度具有不同的大小。

注意

掩码值被 0 替换。

对于向量(一维数组),它计算普通的inner-product:

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

更一般地说,如果ndim(a) = r > 0ndim(b) = s > 0

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

或明确:

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

此外 a 或 b 可以是标量,在这种情况下:

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

例子

向量的普通内积:

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

一些多维示例:

>>> a = np.arange(24).reshape((2,3,4))
>>> b = np.arange(4)
>>> c = np.inner(a, b)
>>> c.shape
(2, 3)
>>> c
array([[ 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)
>>> c
array([[[1, 3, 5]]])

b 是标量的示例:

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

相关用法


注:本文由纯净天空筛选整理自numpy.org大神的英文原创作品 numpy.ma.innerproduct。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。