Bird
Raised Fist0
NumPydata~5 mins

np.searchsorted() for insertion points in NumPy - Cheat Sheet & Quick Revision

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
Recall & Review
beginner
What does np.searchsorted() do in NumPy?

np.searchsorted() finds the index where a value should be inserted in a sorted array to keep it sorted.

Click to reveal answer
beginner
What is the default side parameter in np.searchsorted() and what does it mean?

The default side parameter is 'left'. It means the insertion index is the first suitable position from the left.

Click to reveal answer
intermediate
How does setting side='right' change the insertion point in np.searchsorted()?

With side='right', the insertion index is after any existing entries of the value, so it inserts to the right.

Click to reveal answer
beginner
If you have arr = [1, 3, 5, 7], what is the insertion index for value 4 using np.searchsorted(arr, 4)?

The insertion index is 2 because 4 fits between 3 (index 1) and 5 (index 2).

Click to reveal answer
beginner
Why is np.searchsorted() useful in real-life data tasks?

It helps quickly find where to insert new data in sorted lists, like timestamps or scores, without sorting again.

Click to reveal answer
What does np.searchsorted() return?
AThe sorted version of the array
BThe value at a given index
CThe index to insert a value to keep array sorted
DThe count of values less than the input
What happens if you use side='right' in np.searchsorted()?
AInsertion index is before existing equal values
BInsertion index is after existing equal values
CArray is reversed before searching
DFunction returns the last index of the array
Given arr = [2, 4, 6, 8], what is np.searchsorted(arr, 5)?
A2
B1
C3
D4
Is np.searchsorted() useful for unsorted arrays?
ANo, it assumes the array is sorted
BYes, but only for numeric arrays
CYes, it sorts the array first
DNo, it only works on strings
What type of arrays can np.searchsorted() work with?
AOnly 2D arrays
BOnly arrays with unique values
CAny unsorted array
DOnly 1D sorted arrays
Explain how np.searchsorted() helps find where to insert a value in a sorted array.
Think about inserting a new score in a sorted leaderboard.
You got /3 concepts.
    Describe the difference between side='left' and side='right' in np.searchsorted().
    Imagine inserting a new timestamp that matches existing ones.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the np.searchsorted() function do in NumPy?
      easy
      A. Returns the maximum value in the array
      B. Sorts the array in ascending order
      C. Removes duplicate values from the array
      D. Finds the index where a value should be inserted to keep the array sorted

      Solution

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

        This function finds the position where a new element can be inserted in a sorted array without breaking the order.
      2. Step 2: Compare with other options

        Options B, C, and D describe different functions: sorting, removing duplicates, and finding max, which are not what searchsorted does.
      3. Final Answer:

        Finds the index where a value should be inserted to keep the array sorted -> Option D
      4. Quick Check:

        Insertion index finder = A [OK]
      Hint: Remember: searchsorted finds insert position, not sorting [OK]
      Common Mistakes:
      • Confusing searchsorted with sorting functions
      • Thinking it removes duplicates
      • Assuming it returns values instead of indices
      2. Which of the following is the correct syntax to find the insertion index of value 5 in a sorted array arr using np.searchsorted()?
      easy
      A. np.searchsorted(arr, value=5)
      B. np.searchsorted(arr, 5)
      C. arr.searchsorted(5)
      D. np.searchsorted(5, arr)

      Solution

      1. Step 1: Recall the function signature

        The correct syntax is np.searchsorted(array, value), so the array comes first, then the value.
      2. Step 2: Check each option

        np.searchsorted(arr, 5) matches the correct order. np.searchsorted(5, arr) reverses arguments. arr.searchsorted(5) is invalid because searchsorted is not a method of ndarray. np.searchsorted(arr, value=5) uses a wrong keyword argument.
      3. Final Answer:

        np.searchsorted(arr, 5) -> Option B
      4. Quick Check:

        Array first, value second = D [OK]
      Hint: Remember: np.searchsorted(array, value) order [OK]
      Common Mistakes:
      • Swapping the order of arguments
      • Using searchsorted as a method of array
      • Using incorrect keyword arguments
      3. What is the output of the following code?
      import numpy as np
      arr = np.array([1, 3, 5, 7])
      index = np.searchsorted(arr, 4)
      print(index)
      medium
      A. 2
      B. 1
      C. 3
      D. 4

      Solution

      1. Step 1: Understand the array and value

        The array is [1, 3, 5, 7], and we want to insert 4 while keeping it sorted.
      2. Step 2: Find the insertion index

        4 fits between 3 (index 1) and 5 (index 2), so the insertion index is 2.
      3. Final Answer:

        2 -> Option A
      4. Quick Check:

        Insert 4 between 3 and 5 = 2 [OK]
      Hint: Find where value fits between sorted elements [OK]
      Common Mistakes:
      • Choosing index of smaller element
      • Choosing index of larger element
      • Confusing zero-based indexing
      4. The code below throws an error. What is the mistake?
      import numpy as np
      arr = np.array([2, 4, 6, 8])
      index = np.searchsorted(arr, side='left', 5)
      print(index)
      medium
      A. The 'side' argument should come after the value argument
      B. The array must be sorted in descending order
      C. The function does not accept keyword arguments
      D. The value to insert must be an array, not a scalar

      Solution

      1. Step 1: Check function argument order

        np.searchsorted expects the array first, then the value, then optional keywords like side.
      2. Step 2: Identify the error in argument placement

        The code passes side='left' before the value 5, which is incorrect syntax.
      3. Final Answer:

        The 'side' argument should come after the value argument -> Option A
      4. Quick Check:

        Keyword args after positional args = A [OK]
      Hint: Put keyword arguments after positional ones [OK]
      Common Mistakes:
      • Placing keyword arguments before positional arguments
      • Assuming array must be descending
      • Thinking scalar values are invalid
      5. Given a sorted array arr = np.array([1, 2, 2, 3, 4]), which code snippet will insert the value 2 after all existing 2s using np.searchsorted()?
      hard
      A. index = np.searchsorted(arr, 2)
      B. index = np.searchsorted(arr, 2, side='left')
      C. index = np.searchsorted(arr, 2, side='right')
      D. index = np.searchsorted(arr, 2, side='both')

      Solution

      1. Step 1: Understand the side parameter

        side='right' returns the insertion index after existing equal values; side='left' inserts before.
      2. Step 2: Apply to the array

        For value 2 in [1, 2, 2, 3, 4], side='right' gives index 3, after the two 2s.
      3. Final Answer:

        index = np.searchsorted(arr, 2, side='right') -> Option C
      4. Quick Check:

        Insert after equals = side='right' = C [OK]
      Hint: Use side='right' to insert after equal values [OK]
      Common Mistakes:
      • Using side='left' inserts before equal values
      • Assuming default side inserts after equals
      • Using invalid side='both'