numpy.tensordot

numpy.tensordot(a, b, axes=2)

Функция numpy.tensordot() вычисляет тензорное скалярное произведение двух массивов вдоль указанных осей.

Единственное отличие квантиля от процентиля - диапазон значений параметра q принимает значения в интервале [0, 1].

Параметры:
a, b - массивы NumPy или подобные массивам объекты.
Массивы с размерностью большей или равной 1.
axes - целое положительное число или массив [a_axes, b_axes].
Если указано число n, то вычисляется сумма по n последним осям массива a и n первым осям массива b. Размеры соответствующих осей a и b должны совпадать. Если указан массив из двух подмассивов a_axes и b_axes, то первая последовательность применяется к массиву a, а вторая к b. Длина подмассивов a_axes и b_axes должна быть одинаковой.
Возвращает:
результат - массив NumPy или число
Тензорное скалярное произведение двух массивов.
Смотрите так же:
dot, einsum

Примеры

В зависимости от указанных осей получается разный результат тензорного произведения:

>>> a = np.arange(12).reshape(2, 2, 3)
>>> b = np.arange(12).reshape(2, 3, 2)
>>> 
>>> np.tensordot(a, b, axes = 2)    #  axes = 2 по умолчанию
array([[110, 125],
       [290, 341]])
>>> 
>>> np.tensordot(a, b, axes = [[0, 1], [0, 2]])
array([[102, 138, 174],
       [116, 160, 204],
       [130, 182, 234]])
>>> 
>>> np.tensordot(a, b, axes = [[2], [1]])
array([[[[ 10,  13],
         [ 28,  31]],

        [[ 28,  40],
         [100, 112]]],


       [[[ 46,  67],
         [172, 193]],

        [[ 64,  94],
         [244, 274]]]])