tensordot

tensordot(x1: array, x2: array, /, *, axes: int | Tuple[Sequence[int], Sequence[int]] = 2) array

Returns a tensor contraction of x1 and x2 over specific axes.

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 x1 and x2 must 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 axes (dimensions) for x1 and x2, respectively.

    If axes is an int equal to N, then contraction must be performed over the last N axes of x1 and the first N axes of x2 in order. The size of each corresponding axis (dimension) must match. Must be nonnegative.

    • If N equals 0, the result is the tensor (outer) product.

    • If N equals 1, the result is the tensor dot product.

    • If N equals 2, the result is the tensor double contraction (default).

    If axes is a tuple of two sequences (x1_axes, x2_axes), the first sequence must apply to x1 and the second sequence to x2. Both sequences must have the same length. Each axis (dimension) x1_axes[i] for x1 must have the same size as the respective axis (dimension) x2_axes[i] for x2. Each sequence must consist of unique (nonnegative) integers that specify valid axes for each respective array.

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 array x2. The returned array must have a data type determined by Type Promotion Rules.