mindspore.mint.unique_consecutive

查看源文件
mindspore.mint.unique_consecutive(input, return_inverse=False, return_counts=False, dim=None)[源代码]

对输入Tensor中连续且重复的元素去重。

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

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

警告

这是一个实验性API,后续可能修改或删除。

参数:
  • input (Tensor) - 输入Tensor。

  • return_inverse (bool, 可选) - 是否返回每个输入中元素映射到输出中位置的索引。默认值: False

  • return_counts (bool, 可选) - 是否返回每个去重元素在输入所在的连续序列的计数。默认值: False

  • dim (int, 可选) - 维度。如果为 None ,则对输入进行展平操作。如果指定,必须是int32或int64类型。默认值: None

返回:

Tensor或包含Tensor对象的元组( outputinverse_indicescounts )。

  • output (Tensor),output 为去重后的输出,与 input 具有相同的数据类型。

  • inverse_indices (Tensor, 可选),如果 return_inverseTrue ,则返回张量 inverse_indices 。张量 inverse_indices 的shape与 input 相同,表示每个输入中元素映射到输出中位置的索引。

  • counts (Tensor, 可选),如果 return_countsTrue ,则返回张量 counts。张量 counts 的shape与 output 相同或当给定dim值时为 output.shape[dim] ,表示每个去重元素在输入中所在的连续序列的计数。

异常:
  • TypeError - input 不是Tensor。

  • TypeError - input 的数据类型不支持。

  • TypeError - return_inverse 不是bool。

  • TypeError - return_counts 不是bool。

  • TypeError - dim 不是int。

  • ValueError - dim 不在 \([-ndim, ndim-1]\) 范围内。

支持平台:

Ascend

样例:

>>> import numpy as np
>>> from mindspore import Tensor, mint
>>> from mindspore import dtype as mstype
>>> x = Tensor(np.array([1, 1, 2, 2, 3, 1, 1, 2]), mstype.int64)
>>> output, inverse_indices, counts = mint.unique_consecutive(x, True, True, None)
>>> print(output)
[1 2 3 1 2]
>>> print(inverse_indices)
[0 0 1 1 2 3 3 4]
>>> print(counts)
[2 2 1 2 1]