mindspore.ops.unique

mindspore.ops.unique(x)[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 :class:’mindspore.ops.UniqueWithPad’ operator.

Parameters

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

Warning

This is an experimental prototype that is subject to change and/or deletion.

Returns

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

Raises

TypeError – If x 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]