Spec-Zone.ru › NumPy 1.20

numpy.ma.inner

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–2021 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.20/reference/generated/numpy.ma.inner.html

Spec-Zone.ru

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