mindspore.Tensor.choose

mindspore.Tensor.choose(choices, mode='clip')[源代码]

根据原始Tensor数组和一个索引数组构造一个新的Tensor。

参数:
  • choices (Union[tuple, list, Tensor]) - 索引选择数组。原始输入Tensor和 choices 的广播维度必须相同。如果 choices 本身是一个Tensor,则其最外层的维度(即,对应于第零维的维度)被用来定义 choices 数组。

  • mode (str, 可选) - 指定如何处理 [0, n-1] 外部的索引。支持’raise’、’wrap’、’clip’。

    • raise - 引发异常(默认);

    • wrap - 原值映射为对n取余后的值;

    • clip - 大于n-1的值会被映射为n-1。该模式下禁用负数索引。

    默认值:’clip’。

返回:

Tensor,合并后的结果。

异常:
  • ValueError - 输入Tensor和任一 choices 无法广播。

支持平台:

Ascend GPU CPU

样例:

>>> 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]