當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。