Bird
Raised Fist0
NumPydata~20 mins

np.unique() for unique values in NumPy - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
np.unique Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of np.unique() with return_counts
What is the output of this code snippet?
NumPy
import numpy as np
arr = np.array([3, 1, 2, 3, 2, 1, 4])
unique_vals, counts = np.unique(arr, return_counts=True)
print(unique_vals)
print(counts)
A
[1 2 3 4]
[2 2 2 1]
B
[3 1 2 4]
[2 2 2 1]
C
[1 2 3 4]
[1 2 2 2]
D
[1 2 3 4]
[2 1 2 2]
Attempts:
2 left
💡 Hint
np.unique() sorts the unique values by default.
❓ data_output
intermediate
1:30remaining
Number of unique elements in a 2D array
How many unique elements are in this 2D numpy array?
NumPy
import numpy as np
arr = np.array([[5, 2, 5], [3, 2, 1]])
unique_elements = np.unique(arr)
print(len(unique_elements))
A3
B5
C6
D4
Attempts:
2 left
💡 Hint
Count all distinct numbers in the array.
❓ Predict Output
advanced
2:30remaining
Output of np.unique() with return_index and return_inverse
What will be printed by this code?
NumPy
import numpy as np
arr = np.array([7, 2, 7, 3, 2])
unique_vals, indices, inverse = np.unique(arr, return_index=True, return_inverse=True)
print(unique_vals)
print(indices)
print(inverse)
A
[2 3 7]
[1 3 0]
[2 0 2 1 0]
B
[2 3 7]
[1 3 0]
[0 2 0 1 2]
C
[2 3 7]
[1 3 0]
[0 1 0 2 1]
D
[7 2 3]
[0 1 3]
[0 1 0 2 1]
Attempts:
2 left
💡 Hint
return_index gives the first index of each unique value in the original array. return_inverse maps original elements to unique indices.
❓ visualization
advanced
3:00remaining
Visualizing unique values and their counts
Which option shows the correct bar chart for unique values and their counts from this array?
NumPy
import numpy as np
import matplotlib.pyplot as plt
arr = np.array([1, 2, 2, 3, 3, 3, 4])
unique_vals, counts = np.unique(arr, return_counts=True)
plt.bar(unique_vals, counts)
plt.xlabel('Unique Values')
plt.ylabel('Counts')
plt.title('Counts of Unique Values')
plt.show()
ABar chart with bars at 1,2,3,4 with heights 2,2,2,1
BBar chart with bars at 1,2,3,4 with heights 1,2,3,1
CBar chart with bars at 1,2,3,4 with heights 1,3,2,1
DBar chart with bars at 1,2,3,4 with heights 1,1,3,2
Attempts:
2 left
💡 Hint
Count how many times each number appears in the array.
🧠 Conceptual
expert
3:00remaining
Effect of np.unique() on structured arrays
Given a structured numpy array with fields 'name' and 'age', what does np.unique() return by default?
NumPy
import numpy as np
arr = np.array([('Alice', 25), ('Bob', 30), ('Alice', 25)], dtype=[('name', 'U10'), ('age', 'i4')])
unique_arr = np.unique(arr)
print(unique_arr)
AArray with unique names only: ['Alice', 'Bob']
BArray with unique ages only: [25, 30]
CArray with unique rows: [('Alice', 25), ('Bob', 30)]
DRaises a TypeError because structured arrays are not supported
Attempts:
2 left
💡 Hint
np.unique() compares entire rows for structured arrays.

Practice

(1/5)
1. What does the np.unique() function do in NumPy?
easy
A. Calculates the sum of all elements
B. Sorts the array in descending order
C. Reverses the order of elements
D. Finds all unique values in an array

Solution

  1. Step 1: Understand the purpose of np.unique()

    This function is designed to find all different (unique) values in a NumPy array or list.
  2. Step 2: Compare with other options

    Sorting, summing, or reversing are different operations and not what np.unique() does.
  3. Final Answer:

    Finds all unique values in an array -> Option D
  4. Quick Check:

    np.unique() = unique values [OK]
Hint: Remember: unique means different values only [OK]
Common Mistakes:
  • Confusing unique with sorting
  • Thinking it sums values
  • Assuming it reverses array
2. Which of the following is the correct syntax to get unique values from a NumPy array arr?
easy
A. np.arr.unique()
B. np.unique(arr)
C. unique(arr)
D. arr.unique()

Solution

  1. Step 1: Recall the correct function call

    The function unique is part of the NumPy module and is called as np.unique().
  2. Step 2: Check other options for errors

    arr.unique() is not a NumPy array method, unique(arr) misses the module prefix, and np.arr.unique() is invalid syntax.
  3. Final Answer:

    np.unique(arr) -> Option B
  4. Quick Check:

    Correct syntax = np.unique(arr) [OK]
Hint: Use np.unique(array) always [OK]
Common Mistakes:
  • Calling unique as method on array
  • Missing np prefix
  • Wrong module usage
3. What is the output of this code?
import numpy as np
arr = np.array([3, 1, 2, 3, 2, 1, 4])
print(np.unique(arr))
medium
A. [1 2 3 4]
B. [3 1 2 4]
C. [4 3 2 1]
D. [1 1 2 2 3 3 4]

Solution

  1. Step 1: Identify unique values in the array

    The array contains values 3, 1, 2, 3, 2, 1, 4. Unique values are 1, 2, 3, and 4.
  2. Step 2: Understand np.unique() output order

    np.unique() returns sorted unique values, so output is [1 2 3 4].
  3. Final Answer:

    [1 2 3 4] -> Option A
  4. Quick Check:

    Unique sorted values = [1 2 3 4] [OK]
Hint: Unique values are sorted by default [OK]
Common Mistakes:
  • Ignoring sorting order
  • Listing duplicates
  • Wrong output format
4. The following code throws an error. What is the problem?
import numpy as np
arr = [1, 2, 2, 3]
print(np.unique(arr, return_counts=True))
medium
A. Incorrect argument name, should be count_return=True
B. List input causes error, must convert to np.array first
C. No error, code runs fine
D. np.unique() does not support return_counts argument

Solution

  1. Step 1: Check input type compatibility

    np.unique() accepts lists or arrays as input without error.
  2. Step 2: Verify return_counts argument

    The argument return_counts=True is valid and returns counts of unique values.
  3. Final Answer:

    No error, code runs fine -> Option C
  4. Quick Check:

    List input + return_counts works [OK]
Hint: np.unique accepts lists and arrays [OK]
Common Mistakes:
  • Thinking list input causes error
  • Wrong argument name
  • Assuming return_counts unsupported
5. You have a 2D NumPy array:
arr = np.array([[1, 2, 2], [3, 1, 4]])

How do you get all unique values from this 2D array as a sorted 1D array?
hard
A. np.unique(arr)
B. np.unique(arr, axis=1)
C. np.unique(arr, axis=0)
D. arr.unique()

Solution

  1. Step 1: Understand np.unique() on 2D arrays

    Calling np.unique() without axis flattens the array and returns unique sorted values.
  2. Step 2: Check axis arguments

    Using axis=0 or axis=1 returns unique rows or columns, not unique elements overall.
  3. Final Answer:

    np.unique(arr) -> Option A
  4. Quick Check:

    Flatten and unique = np.unique(arr) [OK]
Hint: No axis means flatten and find unique [OK]
Common Mistakes:
  • Using axis to get unique elements
  • Calling unique as method
  • Expecting 2D unique output