mindspore.Tensor.choose

Tensor.choose(choices, mode='clip')[source]

Construct a tensor from an index tensor and a list of tensors to choose from.

Parameters
  • choices (Union[tuple, list, Tensor]) – Choice tensors. The input tensor and all of the choices must be broadcasted to the same shape. If choices is itself a tensor, then its outermost dimension (i.e., the one corresponding to choices.shape[0]) is taken as defining the “sequence”.

  • mode (str, optional) –

    Specifies how indices outside [0, n-1] will be treated. Support ‘raise’, ‘wrap’, ‘clip’.

    • raise: Raises an error;

    • wrap: Wraps around;

    • clip: Clips to the range. The values greater than n-1 will be mapped to n-1. Note that this mode disables indexing with negative numbers.

    Default: ‘clip’.

Returns

Tensor, the merged result.

Raises

ValueError – If the input tensor and any of the choices cannot be broadcast.

Supported Platforms:

Ascend GPU CPU

Examples

>>> import numpy as np
>>> from mindspore import Tensor
>>> choices = [[0, 1, 2, 3], [10, 11, 12, 13], [20, 21, 22, 23], [30, 31, 32, 33]]
>>> x = Tensor(np.array([2, 3, 1, 0]))
>>> print(x.choose(choices))
[20 31 12  3]