# tensorflow::ops::UniqueWithCountsV2

`#include <array_ops.h>`

Finds unique elements along an axis of a tensor.

## Summary

This operation either returns a tensor `y` containing unique elements along the `axis` of a tensor. The returned unique elements is sorted in the same order as they occur along `axis` in `x`. This operation also returns a tensor `idx` and a tensor `count` that are the same size as the number of the elements in `x` along the `axis` dimension. The `idx` contains the index in the unique output `y` and the `count` contains the count in the unique output `y`. In other words, for an `1-D` tensor `x` with `axis = None:

`y[idx[i]] = x[i] for i in [0, 1,...,rank(x) - 1]`

For example:

```# tensor 'x' is [1, 1, 2, 4, 4, 4, 7, 8, 8]
y, idx, count = unique_with_counts(x)
y ==> [1, 2, 4, 7, 8]
idx ==> [0, 0, 1, 2, 2, 2, 3, 4, 4]
count ==> [2, 1, 3, 1, 2]
```

For an `2-D` tensor `x` with `axis = 0`:

```# tensor 'x' is [[1, 0, 0],
#                [1, 0, 0],
#                [2, 0, 0]]
y, idx, count = unique_with_counts(x, axis=0)
y ==> [[1, 0, 0],
[2, 0, 0]]
idx ==> [0, 0, 1]
count ==> [2, 1]
```

For an `2-D` tensor `x` with `axis = 1`:

```# tensor 'x' is [[1, 0, 0],
#                [1, 0, 0],
#                [2, 0, 0]]
y, idx, count = unique_with_counts(x, axis=1)
y ==> [[1, 0],
[1, 0],
[2, 0]]
idx ==> [0, 1, 1]
count ==> [1, 2]
```

Arguments:

• scope: A Scope object
• x: A `Tensor`.
• axis: A `Tensor` of type `int32` (default: None). The axis of the Tensor to find the unique elements.

Returns:

• `Output` y: A `Tensor`. Unique elements along the `axis` of `Tensor` x.
• `Output` idx: A 1-D Tensor. Has the same type as x that contains the index of each value of x in the output y.
• `Output` count: A 1-D Tensor. The count of each value of x in the output y.

### Constructors and Destructors

`UniqueWithCountsV2(const ::tensorflow::Scope & scope, ::tensorflow::Input x, ::tensorflow::Input axis)`
`UniqueWithCountsV2(const ::tensorflow::Scope & scope, ::tensorflow::Input x, ::tensorflow::Input axis, const UniqueWithCountsV2::Attrs & attrs)`

### Public attributes

`count`
`::tensorflow::Output`
`idx`
`::tensorflow::Output`
`y`
`::tensorflow::Output`

### Public static functions

`OutIdx(DataType x)`
`Attrs`

### Structs

tensorflow::ops::UniqueWithCountsV2::Attrs

Optional attribute setters for UniqueWithCountsV2.

## Public attributes

### count

`::tensorflow::Output count`

### idx

`::tensorflow::Output idx`

### y

`::tensorflow::Output y`

## Public functions

### UniqueWithCountsV2

``` UniqueWithCountsV2(
const ::tensorflow::Scope & scope,
::tensorflow::Input x,
::tensorflow::Input axis
)```

### UniqueWithCountsV2

``` UniqueWithCountsV2(
const ::tensorflow::Scope & scope,
::tensorflow::Input x,
::tensorflow::Input axis,
const UniqueWithCountsV2::Attrs & attrs
)```

## Public static functions

### OutIdx

```Attrs OutIdx(
DataType x
)```