Bird
Raised Fist0
NumPydata~10 mins

Why advanced indexing matters in NumPy - Test Your Understanding

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to select the first row of the array using basic indexing.

NumPy
import numpy as np
arr = np.array([[1, 2], [3, 4], [5, 6]])
first_row = arr[1]
Drag options to blanks, or click blank then click option'
A[[0]]
B[[0, 0]]
C[0, 0]
D[0]
Attempts:
3 left
💡 Hint
Common Mistakes
Using double brackets returns a 2D array instead of 1D.
Using two indices selects a single element, not a row.
2fill in blank
medium

Complete the code to select rows 0 and 2 using advanced indexing.

NumPy
import numpy as np
arr = np.array([[1, 2], [3, 4], [5, 6]])
selected_rows = arr[[1]]
Drag options to blanks, or click blank then click option'
A0, 2
B[0, 2]
C[[0, 2]]
Dnp.array([0, 2])
Attempts:
3 left
💡 Hint
Common Mistakes
Using a plain list without np.array may work but is less explicit.
Using comma-separated indices causes syntax errors.
3fill in blank
hard

Fix the error in the code to select elements at positions (0,1) and (2,0) using advanced indexing.

NumPy
import numpy as np
arr = np.array([[1, 2], [3, 4], [5, 6]])
result = arr[[1], [2]]
Drag options to blanks, or click blank then click option'
Anp.array([0, 2])
B[0, 2]
C0, 2
Dnp.array([1, 0])
Attempts:
3 left
💡 Hint
Common Mistakes
Using lists instead of arrays causes unexpected behavior.
Using the same index array for both rows and columns without matching positions.
4fill in blank
hard

Fill both blanks to create a dictionary comprehension that maps words to their lengths only if length is greater than 3.

NumPy
words = ['data', 'science', 'is', 'fun']
lengths = {word: [1] for word in words if [2]
Drag options to blanks, or click blank then click option'
Alen(word)
Blen(word) > 3
Cword
Dword > 3
Attempts:
3 left
💡 Hint
Common Mistakes
Using the word itself as the value instead of its length.
Using the word in the condition instead of its length.
5fill in blank
hard

Fill all three blanks to create a dictionary comprehension that maps uppercase words to their lengths only if length is greater than 2.

NumPy
words = ['AI', 'ML', 'Data', 'Code']
result = [1]: [2] for w in words if [3]
Drag options to blanks, or click blank then click option'
Aw.upper()
Blen(w)
Clen(w) > 2
Dw.lower()
Attempts:
3 left
💡 Hint
Common Mistakes
Using lowercase conversion instead of uppercase.
Using the word itself instead of its length as the value.

Practice

(1/5)
1. What is the main benefit of using advanced indexing in NumPy arrays?
easy
A. It allows selecting multiple specific elements easily and efficiently.
B. It automatically sorts the array elements.
C. It converts arrays into lists.
D. It changes the data type of the array.

Solution

  1. Step 1: Understand what advanced indexing does

    Advanced indexing lets you pick many specific elements from an array using lists or arrays of indices.
  2. Step 2: Compare options with this understanding

    Only It allows selecting multiple specific elements easily and efficiently. describes this benefit correctly; others describe unrelated features.
  3. Final Answer:

    It allows selecting multiple specific elements easily and efficiently. -> Option A
  4. Quick Check:

    Advanced indexing = easy multi-element selection [OK]
Hint: Advanced indexing picks many elements at once [OK]
Common Mistakes:
  • Thinking it sorts or changes data types
  • Confusing with basic slicing
  • Assuming it converts arrays to lists
2. Which of the following is the correct syntax for advanced indexing to select elements at positions 0, 2, and 4 from a NumPy array arr?
easy
A. arr(0, 2, 4)
B. arr[[0, 2, 4]]
C. arr[0:2:4]
D. arr{0, 2, 4}

Solution

  1. Step 1: Recall advanced indexing syntax

    Advanced indexing uses square brackets with a list or array of indices inside, like arr[[0, 2, 4]].
  2. Step 2: Check each option

    arr[[0, 2, 4]] uses correct syntax. Options A, C, and D use invalid syntax for indexing.
  3. Final Answer:

    arr[[0, 2, 4]] -> Option B
  4. Quick Check:

    Use double brackets with list for advanced indexing [OK]
Hint: Use double brackets with list for advanced indexing [OK]
Common Mistakes:
  • Using parentheses instead of brackets
  • Using slicing syntax incorrectly
  • Using curly braces which are invalid
3. What is the output of the following code?
import numpy as np
arr = np.array([10, 20, 30, 40, 50])
indices = [1, 3]
print(arr[indices])
medium
A. [1 3]
B. [10 30]
C. [20 40]
D. [20 30 40]

Solution

  1. Step 1: Understand the array and indices

    The array is [10, 20, 30, 40, 50]. The indices list is [1, 3].
  2. Step 2: Apply advanced indexing

    arr[indices] selects elements at positions 1 and 3, which are 20 and 40.
  3. Final Answer:

    [20 40] -> Option C
  4. Quick Check:

    arr[[1,3]] = [20 40] [OK]
Hint: Index list picks elements at those positions [OK]
Common Mistakes:
  • Confusing indices with values
  • Expecting a slice output
  • Printing indices instead of array elements
4. The following code throws an error. What is the cause?
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
indices = [0, 2, 5]
print(arr[indices])
medium
A. Index 5 is out of bounds for the array.
B. The indices list must be a NumPy array.
C. Advanced indexing cannot use lists.
D. The array must be 2D for advanced indexing.

Solution

  1. Step 1: Check the array size and indices

    The array has 5 elements with indices 0 to 4. The indices list includes 5, which is invalid.
  2. Step 2: Understand the error cause

    Accessing arr[5] causes an IndexError because index 5 is out of bounds.
  3. Final Answer:

    Index 5 is out of bounds for the array. -> Option A
  4. Quick Check:

    Index must be within array size [OK]
Hint: Check if all indices are within array length [OK]
Common Mistakes:
  • Thinking list type causes error
  • Assuming advanced indexing needs 2D arrays
  • Ignoring out-of-range indices
5. Given a 2D NumPy array arr = np.array([[1,2,3],[4,5,6],[7,8,9]]), how can you use advanced indexing to select elements 2, 6, and 7 from the array?
hard
A. arr[0:3, 1:3]
B. arr[[1,2,3], [2,3,1]]
C. arr[[0,1,2]][[1,2,0]]
D. arr[[0,1,2], [1,2,0]]

Solution

  1. Step 1: Identify positions of elements 2, 6, and 7

    Element 2 is at (0,1), 6 at (1,2), and 7 at (2,0).
  2. Step 2: Use advanced indexing with row and column arrays

    Using arr[[0,1,2], [1,2,0]] selects these elements by pairing rows and columns.
  3. Final Answer:

    arr[[0,1,2], [1,2,0]] -> Option D
  4. Quick Check:

    Pair row and column indices to select elements [OK]
Hint: Use paired row and column index arrays [OK]
Common Mistakes:
  • Using invalid indices out of range
  • Trying to slice instead of advanced indexing
  • Misaligning row and column index arrays
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