NumPy | unique method
Start your free 7-days trial now!
Numpy's unique(~)
method returns a Numpy array containing the sorted unique values of the input array.
Parameters
1. a
| array-like
The input array.
2. return_index
link | boolean
| optional
Whether to return the indexes of unique values. By default, return_index=False
.
3. return_inverse
link | boolean
| optional
Whether to return the indexes that can be used to reconstruct our input array. Check the example below for clarification. By default, return_inverse=False
.
4. return_counts
link | boolean
| optional
Whether to return the number of occurrences of each value. By default, return_counts=False
.
5. axis
link | int
or None
| optional
The axis along which to look for unique values.
Axis | Meaning |
---|---|
0 | Find unique rows |
1 | Find unique columns |
None | Find unique values |
By default, axis=None
.
Return value
A Numpy array that contains the unique values of the input value. You will also get additional arrays depending on whether you flag any of the return_
parameters as True
.
Examples
Basic usage
1D case
To find all unique values in a 1D array:
a = np.array([4,5,6,5])np.unique(a)
array([4, 5, 6])
2D case
Consider the following 2D array:
a = np.array([[4,5],[6,5]])a
array([[4, 5], [6, 5]])
To find all unique values in 2D array:
np.unique(a)
array([4, 5, 6])
Getting the indices of the unique values
To get the indices of the unique values:
a = np.array([4,5,6,5])arr_unique_values, arr_index = np.unique(a, return_index=True)print(arr_unique_values)print(arr_index)
[4 5 6][0 1 2]
Getting the inverse indexes
To get the inverse indexes:
a = np.array([4,5,6,5])arr_unique_values, arr_inverse = np.unique(a, return_inverse=True)print(arr_unique_values)print(arr_inverse)
[4 5 6][0 1 2 1]
Here, the inverse can be used to reconstruct the original values:
arr_unique_values[arr_inverse]
array([4, 5, 6, 5])
Getting the counts
To get the counts, set return_counts=True
:
a = np.array([4,5,6,5])arr_unique_values, arr_counts = np.unique(a, return_counts=True)print(arr_unique_values)print(arr_counts)
[4 5 6][1 2 1]
Here, we see that the value 5 occurs twice in the original array.
Finding unique rows
Consider the following 2D array:
a = np.array([[4,5],[6,5],[4,5]])a
array([[4, 5], [6, 5], [4, 5]])
Here, we see that rows at index 0 and index 2 are duplicates. To get all the unique rows:
np.unique(a, axis=0)
array([[4, 5], [6, 5]])
Finding unique columns
Consider the following 2D array:
a = np.array([[4,5,4],[6,8,6]])a
array([[4, 5, 4], [6, 8, 6]])
Here, we see that columns at index 0 and index 2 are duplicate. To get all unique columns:
np.unique(a, axis=1)
array([[4, 5], [6, 8]])