Spec-Zone.ru › NumPy 1.18

numpy.ma.inner

numpy.ma.inner(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.inner.html

Spec-Zone.ru

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