tensordot¶
- tensordot(x1: array, x2: array, /, *, axes: int | Tuple[Sequence[int], Sequence[int]] = 2) array¶
Returns a tensor contraction of
x1andx2over specific axes.Note
The
tensordotfunction corresponds to the generalized matrix product.- Parameters:
x1 (array) – first input array. Should have a numeric data type.
x2 (array) –
second input array. Should have a numeric data type. Corresponding contracted axes of
x1andx2must be equal.Note
Contracted axes (dimensions) must not be broadcasted.
axes (Union[int, Tuple[Sequence[int], Sequence[int]]]) –
number of axes (dimensions) to contract or explicit sequences of axis (dimension) indices for
x1andx2, respectively.If
axesis anintequal toN, then contraction must be performed over the lastNaxes ofx1and the firstNaxes ofx2in order. The size of each corresponding axis (dimension) must match. Must be nonnegative.If
Nequals0, the result is the tensor (outer) product.If
Nequals1, the result is the tensor dot product.If
Nequals2, the result is the tensor double contraction (default).
If
axesis a tuple of two sequences(x1_axes, x2_axes), the first sequence must apply tox1and the second sequence tox2. Both sequences must have the same length. Each axis (dimension)x1_axes[i]forx1must have the same size as the respective axis (dimension)x2_axes[i]forx2. Each index referred to in a sequence must be unique. Ifx1has rank (i.e, number of dimensions)N, a validx1axis must reside on the half-open interval[-N, N). Ifx2has rankM, a validx2axis must reside on the half-open interval[-M, M).
Note
If either
x1orx2has a complex floating-point data type, neither argument must be complex-conjugated or transposed. If conjugation and/or transposition is desired, these operations should be explicitly performed prior to computing the generalized matrix product.- Returns:
out (array) – an array containing the tensor contraction whose shape consists of the non-contracted axes (dimensions) of the first array
x1, followed by the non-contracted axes (dimensions) of the second arrayx2. The returned array must have a data type determined by Type Promotion Rules.
Notes
Changed in version 2022.12: Added complex data type support.
Changed in version 2023.12: Allow negative axes.