Bird
Raised Fist0
NumPydata~20 mins

np.take() and np.put() for advanced selection in NumPy - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
np.take() and np.put() Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
1:30remaining
Output of np.take() with repeated indices
What is the output of the following code snippet?
NumPy
import numpy as np
arr = np.array([10, 20, 30, 40, 50])
indices = [1, 3, 1, 4]
result = np.take(arr, indices)
print(result)
A[20 40 20 50]
B[10 30 10 50]
C[20 40 40 50]
D[10 20 30 40]
Attempts:
2 left
💡 Hint
np.take selects elements from the array at the given indices, including repeats.
❓ data_output
intermediate
1:30remaining
Result of np.put() modifying array elements
Given the code below, what is the final state of the array 'arr' after np.put() is called?
NumPy
import numpy as np
arr = np.array([5, 10, 15, 20, 25])
indices = [0, 2, 4]
values = [50, 150, 250]
np.put(arr, indices, values)
print(arr)
A[50 10 150 20 250]
B[5 10 15 20 25]
C[50 150 250 20 25]
D[250 10 150 20 50]
Attempts:
2 left
💡 Hint
np.put replaces elements at specified indices with given values.
🔧 Debug
advanced
1:30remaining
Identify the error in np.put usage
What error will the following code produce when executed?
NumPy
import numpy as np
arr = np.array([1, 2, 3, 4])
indices = [0, 1, 2]
values = [10, 20]
np.put(arr, indices, values)
ANo error, array modified successfully
BIndexError: index 3 is out of bounds for axis 0 with size 4
CTypeError: 'list' object is not callable
DValueError: could not broadcast input array from shape (2,) into shape (3,)
Attempts:
2 left
💡 Hint
Check if the length of values matches the length of indices.
🚀 Application
advanced
2:00remaining
Using np.take() and np.put() to swap elements
You want to swap the elements at positions 1 and 3 in the array below using np.take() and np.put(). Which code snippet correctly performs this swap?
NumPy
import numpy as np
arr = np.array([100, 200, 300, 400, 500])
A
temp = np.take(arr, [1, 3])
np.put(arr, [3, 1], temp)
B
temp = np.take(arr, [1, 3])
np.put(arr, [1, 3], temp[::-1])
Cnp.put(arr, [1, 3], [arr[3], arr[1]])
Darr[[1, 3]] = arr[[3, 1]]
Attempts:
2 left
💡 Hint
Use np.take to get values, then np.put with reversed values to swap.
🧠 Conceptual
expert
2:00remaining
Effect of mode parameter in np.put()
Consider the array and code below. What will be the final array after executing np.put() with mode='wrap'?
NumPy
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
indices = [0, 5, 7]
values = [10, 20, 30]
np.put(arr, indices, values, mode='wrap')
print(arr)
A[10 20 30 4 5]
BIndexError: index 5 is out of bounds for axis 0 with size 5
C[20 2 30 4 5]
D[10 2 3 4 5]
Attempts:
2 left
💡 Hint
mode='wrap' wraps indices around the array length.

Practice

(1/5)
1. What does np.take() do in NumPy?
easy
A. Selects elements from an array using specified indices
B. Changes elements in an array at specified indices
C. Sorts the elements of an array
D. Creates a new array filled with zeros

Solution

  1. Step 1: Understand the function purpose

    np.take() is used to pick elements from an array by their index positions.
  2. Step 2: Compare with other options

    Only Selects elements from an array using specified indices describes selecting elements by indices, while others describe different functions.
  3. Final Answer:

    Selects elements from an array using specified indices -> Option A
  4. Quick Check:

    np.take() = select elements [OK]
Hint: np.take() picks by index, np.put() changes by index [OK]
Common Mistakes:
  • Confusing np.take() with np.put()
  • Thinking np.take() modifies the array
  • Mixing np.take() with sorting functions
2. Which of the following is the correct syntax to replace elements at indices [1, 3] in array a with values [10, 20] using np.put()?
easy
A. np.put(a, [1, 3], [10, 20])
B. np.put([1, 3], a, [10, 20])
C. np.put(a, [10, 20], [1, 3])
D. np.put(a, 10, [1, 3, 20])

Solution

  1. Step 1: Recall np.put() syntax

    The correct syntax is np.put(array, indices, values) to replace elements at given indices.
  2. Step 2: Match syntax with options

    np.put(a, [1, 3], [10, 20]) matches the correct order: array, indices, values.
  3. Final Answer:

    np.put(a, [1, 3], [10, 20]) -> Option A
  4. Quick Check:

    np.put(array, indices, values) [OK]
Hint: np.put(array, indices, values) replaces elements [OK]
Common Mistakes:
  • Swapping the order of arguments
  • Passing values as indices
  • Using wrong data types for indices or values
3. What is the output of the following code?
import numpy as np
a = np.array([5, 10, 15, 20, 25])
indices = [0, 2, 4]
result = np.take(a, indices)
print(result)
medium
A. [10 20 25]
B. [5 15 25]
C. [5 10 15]
D. [0 2 4]

Solution

  1. Step 1: Understand np.take() with given indices

    np.take(a, [0, 2, 4]) selects elements at positions 0, 2, and 4 from array a.
  2. Step 2: Extract elements from array

    Elements at these positions are 5 (index 0), 15 (index 2), and 25 (index 4).
  3. Final Answer:

    [5 15 25] -> Option B
  4. Quick Check:

    np.take() picks elements by index [OK]
Hint: np.take() returns elements at given indices [OK]
Common Mistakes:
  • Confusing indices with values
  • Expecting output as original array
  • Mixing up index positions
4. Identify the error in this code snippet:
import numpy as np
a = np.array([1, 2, 3, 4])
np.put(a, [1, 4], [10, 20])
print(a)
medium
A. Syntax error in np.put() usage
B. Values list length does not match indices length
C. Index 4 is out of bounds for array of size 4
D. np.put() cannot modify arrays in-place

Solution

  1. Step 1: Check array size and indices

    Array a has size 4, valid indices are 0 to 3. Index 4 is invalid.
  2. Step 2: Understand np.put() behavior

    np.put() tries to assign values at given indices. Using index 4 causes an IndexError.
  3. Final Answer:

    Index 4 is out of bounds for array of size 4 -> Option C
  4. Quick Check:

    Index error due to invalid index [OK]
Hint: Check indices are within array size before np.put() [OK]
Common Mistakes:
  • Ignoring array size limits
  • Assuming np.put() auto-expands array
  • Confusing index and value positions
5. Given a = np.array([1, 2, 3, 4, 5]), how can you use np.put() and np.take() together to replace elements at indices [0, 2] with [10, 20] and then retrieve these updated elements?
hard
A. np.take(a, [10, 20]); np.put(a, [0, 2])
B. np.take(a, [0, 2], [10, 20]); np.put(a, [0, 2])
C. np.put([0, 2], a, [10, 20]); np.take([0, 2], a)
D. np.put(a, [0, 2], [10, 20]); np.take(a, [0, 2])

Solution

  1. Step 1: Use np.put() to update elements

    np.put(a, [0, 2], [10, 20]) replaces elements at indices 0 and 2 with 10 and 20.
  2. Step 2: Use np.take() to retrieve updated elements

    np.take(a, [0, 2]) returns the updated elements at those indices.
  3. Final Answer:

    np.put(a, [0, 2], [10, 20]); np.take(a, [0, 2]) -> Option D
  4. Quick Check:

    Put updates, take retrieves updated values [OK]
Hint: Put first to update, then take to get new values [OK]
Common Mistakes:
  • Mixing argument order in np.put()
  • Using np.take() to update values
  • Confusing arrays and indices in functions
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard