Spec-Zone.ru › NumPy 1.16

numpy.ma.innerproduct

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

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

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

Параметры:
a, b : array_like

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

Возвращает:
out : ndarray

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

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

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

См. также

tensordot
Сумма произведений по произвольным осям.
dot
Обобщенное матричное произведение, использующее предпоследнюю размерность b.
einsum
Конвенция суммирования Эйнштейна.

Примечания

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

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

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–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.16.1/reference/generated/numpy.ma.innerproduct.html

Spec-Zone.ru

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