Spec-Zone.ru › NumPy 1.18

numpy.ma.innerproduct

numpy.ma.innerproduct(a, b) [source]

Внутреннее произведение двух массивов.

Обычное внутреннее произведение векторов для одномерных массивов (без комплексного сопряжения), в многомерном случае — сумма произведений по последним осям.

Параметры
a, barray_like

Если a и b не являются скалярами, их последние размерности должны совпадать.

Возвращает
outndarray

out.shape = a.shape[:-1] + b.shape[:-1]

Возможные исключения
ValueError

Если последняя размерность a и b имеет разный размер.

См. также

tensordot

Сумма произведений по произвольным осям.

dot

Обобщённое матричное произведение, использующее предпоследнюю размерность b.

einsum

Условное обозначение Эйнштейна.

Примечания

Маскированные значения заменяются на 0.

Для векторов (одномерных массивов) вычисляется обычное внутреннее произведение:

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

Более обще, если ndim(a) = r > 0 и ndim(b) = s > 0:

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

или явно:

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

Кроме того, 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)
>>> np.inner(a, b)
array([[ 14,  38,  62],
       [ 86, 110, 134]])

Пример, где b является скаляром:

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

© 2005–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.18/reference/generated/numpy.ma.innerproduct.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API