mindspore.ops.unique

mindspore.ops.unique(input)[source]

Returns the unique elements of input tensor and also return a tensor containing the index of each value of input tensor corresponding to the output unique tensor.

The output contains Tensor y and Tensor idx, the format is probably similar to (y, idx). The shape of Tensor y and Tensor idx is different in most cases, because Tensor y will be deduplicated, and the shape of Tensor idx is consistent with the input.

To get the same shape between idx and y, please ref to mindspore.ops.UniqueWithPad operator.

Parameters

input (Tensor) – The input tensor. The shape is \((N,*)\) where \(*\) means, any number of additional dimensions.

Warning

This is an experimental API that is subject to change or deletion.

Returns

Tuple, containing Tensor objects (y, idx), y is a tensor with the same type as input, and contains the unique elements in input. idx is a tensor containing indices of elements in the input corresponding to the output tensor, have the same shape with input.

Raises

TypeError – If input is not a Tensor.

Supported Platforms:

Ascend GPU CPU

Examples

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