search
Search
Login
Unlock 100+ guides
menu
menu
web
search toc
close
Comments
Log in or sign up
Cancel
Post
account_circle
Profile
exit_to_app
Sign out
What does this mean?
Why is this true?
Give me some examples!
search
keyboard_voice
close
Searching Tips
Search for a recipe:
"Creating a table in MySQL"
Search for an API documentation: "@append"
Search for code: "!dataframe"
Apply a tag filter: "#python"
Useful Shortcuts
/ to open search panel
Esc to close search panel
to navigate between search results
d to clear all current filters
Enter to expand content preview
icon_star
Doc Search
icon_star
Code Search Beta
SORRY NOTHING FOUND!
mic
Start speaking...
Voice search is only supported in Safari and Chrome.
Navigate to
chevron_leftDocumentation
Method argpartition
NumPy Random Generator4 topics
Method choiceMethod dotMethod finfoMethod histogramMethod iinfoMethod maxMethod meanMethod placeMethod rootsMethod seedMethod uniformMethod viewMethod zerosMethod sumObject busdaycalendarMethod is_busdayProperty dtypeMethod uniqueMethod loadtxtMethod vsplitMethod fliplrMethod setdiff1dMethod msortMethod argsortMethod lexsortMethod aroundMethod nanmaxMethod nanminMethod nanargmaxMethod nanargminMethod argmaxMethod argminProperty itemsizeMethod spacingMethod fixMethod ceilMethod diffProperty flatProperty realProperty baseMethod flipMethod deleteMethod amaxMethod aminMethod logical_xorMethod logical_orMethod logical_notMethod logical_andMethod logaddexpMethod logaddexp2Method logspaceMethod not_equalMethod equalMethod greater_equalMethod lessMethod less_equalMethod remainderMethod modMethod emptyMethod greaterMethod isfiniteMethod busday_countMethod repeatMethod varMethod random_sampleMethod randomMethod signMethod stdMethod absoluteMethod absMethod sortMethod randintMethod isrealMethod linspaceMethod gradientMethod allMethod sampleProperty TProperty imagMethod covMethod insertMethod logMethod log1pMethod exp2Method expm1Method expMethod arccosMethod cosMethod arcsinMethod sinMethod tanMethod fromiterMethod trim_zerosMethod diagflatMethod savetxtMethod count_nonzeroProperty sizeProperty shapeMethod reshapeMethod resizeMethod triuMethod trilMethod eyeMethod arangeMethod fill_diagonalMethod tileMethod saveMethod transposeMethod swapaxesMethod meshgridProperty mgridMethod rot90Method log2Method radiansMethod deg2radMethod rad2degMethod degreesMethod log10Method appendMethod cumprodProperty nbytesMethod tostringProperty dataMethod modfMethod fmodMethod tolistMethod datetime_as_stringMethod datetime_dataMethod array_splitMethod itemsetMethod floorMethod put_along_axisMethod cumsumMethod bincountMethod putMethod putmaskMethod takeMethod hypotMethod sqrtMethod squareMethod floor_divideMethod triMethod signbitMethod flattenMethod ravelMethod rollMethod isrealobjMethod diagMethod diagonalMethod quantileMethod onesMethod iscomplexobjMethod iscomplexMethod isscalarMethod divmodMethod isnatMethod percentileMethod isnanMethod divideMethod addMethod reciprocalMethod positiveMethod subtractMethod medianMethod isneginfMethod isposinfMethod float_powerMethod powerMethod negativeMethod maximumMethod averageMethod isinfMethod multiplyMethod busday_offsetMethod identityMethod interpMethod squeezeMethod get_printoptionsMethod savez_compressedMethod savezMethod loadMethod asfarrayMethod clipMethod arrayMethod array_equivMethod array_equalMethod frombufferMethod set_string_functionMethod matmulMethod genfromtxtMethod fromfunctionMethod asscalarMethod searchsortedMethod full_likeMethod fullMethod shares_memoryMethod ptpMethod digitizeMethod argwhereMethod geomspaceMethod zeros_likeMethod fabsMethod flatnonzeroMethod vstackMethod dstackMethod fromstringMethod tobytesMethod expand_dimsMethod ranfMethod arctanMethod itemMethod extractMethod compressMethod chooseMethod asarrayMethod asmatrixMethod allcloseMethod iscloseMethod anyMethod corrcoefMethod truncMethod prodMethod crossMethod true_divideMethod hsplitMethod splitMethod rintMethod ediff1dMethod lcmMethod gcdMethod cbrtMethod flipudProperty ndimMethod array2stringMethod set_printoptionsMethod whereMethod hstack
Char32 topics
check_circle
Mark as learned
thumb_up
0
thumb_down
0
chat_bubble_outline
0
Comment
auto_stories Bi-column layout
settings

NumPy | unique method

schedule Aug 11, 2023
Last updated
local_offer
PythonNumPy
Tags
mode_heat
Master the mathematics behind data science with 100+ top-tier guides
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_indexlink | boolean | optional

Whether to return the indexes of unique values. By default, return_index=False.

3. return_inverselink | 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_countslink | boolean | optional

Whether to return the number of occurrences of each value. By default, return_counts=False.

5. axislink | 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]])
robocat
Published by Isshin Inada
Edited by 0 others
Did you find this page useful?
thumb_up
thumb_down
Comment
Citation
Ask a question or leave a feedback...
thumb_up
0
thumb_down
0
chat_bubble_outline
0
settings
Enjoy our search
Hit / to insta-search docs and recipes!