mindspore.Tensor.unique

查看源文件
mindspore.Tensor.unique(sorted=True, return_inverse=False, return_counts=False, dim=None)

self 中的元素去重。

return_inverse=True 时,会返回一个索引Tensor,包含 self 中的元素在输出Tensor中的索引。

return_counts=True 时,会返回一个Tensor,表示输出元素在 self 中的个数。

参数:
  • sorted (bool,可选) - 输出是否需要进行升序排序。默认值: True

  • return_inverse (bool,可选) - 是否输出 selfoutput 上对应的index。默认值: False

  • return_counts (bool,可选) - 是否输出 output 中元素的数量。默认值: False

  • dim (int,可选) - 做去重操作的维度,当设置为 None 的时候,对展开的 self 做去重操作, 否则,将给定维度的Tensor视为一个元素去做去重操作。默认值:None

返回:

输出为一个Tensor,或者以下一个或几个Tensor的集合:(outputinverse_indeicescounts

  • output (Tensor) - 与 self 数据类型相同的Tensor,包含 self 中去重后的元素。

  • inverse_indeices (Tensor,可选) - 当 return_inverse=True 时返回,表示 self 中的元素在输出Tensor中的索引。当 dim=None 时,shape和 self 一样;当 dim 有值的时候,shape是self.shape[dim]。

  • counts (Tensor,可选) - 当 return_counts=True 时返回,表示输出Tensor中元素在 self 中的数量。当 dim=None 时,shape和 output 一样;当 dim 有值的时候,shape是output.shape[dim]。

支持平台:

Ascend

样例:

>>> import mindspore
>>> import numpy as np
>>> from mindspore import Tensor
>>> x = Tensor(np.array([1, 2, 5, 2]), mindspore.int32)
>>> output = x.unique(return_inverse=True)
>>> print(output)
(Tensor(shape=[3], dtype=Int32, value= [1, 2, 5]), Tensor(shape=[4], dtype=Int64, value= [0, 1, 2, 1]))
>>> y = output[0]
>>> print(y)
[1 2 5]
>>> idx = output[1]
>>> print(idx)
[0 1 2 1]