Bird
Raised Fist0
NumPydata~5 mins

Fancy indexing with integer arrays in NumPy - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is fancy indexing in NumPy?
Fancy indexing is a way to select elements from a NumPy array using integer arrays or lists as indices, allowing you to pick multiple elements at once in any order.
Click to reveal answer
beginner
How does fancy indexing differ from slicing in NumPy?
Slicing selects a continuous range of elements, while fancy indexing lets you select arbitrary elements using arrays of indices, which can be non-continuous and repeated.
Click to reveal answer
beginner
Given array arr = np.array([10, 20, 30, 40, 50]), what does arr[[1, 3, 4]] return?
It returns a new array with elements at positions 1, 3, and 4: [20, 40, 50].
Click to reveal answer
intermediate
Can fancy indexing be used to modify elements in a NumPy array? How?
Yes. You can assign new values to elements selected by fancy indexing. For example, arr[[1, 3]] = [100, 200] changes elements at positions 1 and 3.
Click to reveal answer
intermediate
What happens if you use repeated indices in fancy indexing, like arr[[2, 2, 0]]?
The output array will include repeated elements corresponding to the repeated indices. For example, it will return elements at positions 2, 2, and 0, repeating values accordingly.
Click to reveal answer
What type of object can be used for fancy indexing in NumPy?
AOnly slices
BStrings
CInteger arrays or lists
DBoolean values
What does arr[[0, 2, 4]] do if arr = np.array([5, 10, 15, 20, 25])?
ARaises an error
BReturns <code>[10, 20]</code>
CReturns <code>[5, 10, 15, 20, 25]</code>
DReturns <code>[5, 15, 25]</code>
Can fancy indexing select elements in any order?
AYes, order can be arbitrary
BNo, only ascending order
CNo, only descending order
DOnly continuous ranges
What happens if you assign values using fancy indexing with repeated indices?
AAll assignments are summed
BThe last assignment to a repeated index is kept
CAn error occurs
DValues are averaged
Which of these is NOT a use case for fancy indexing?
ASelecting a continuous slice of elements
BDuplicating elements in a new array
CReordering elements arbitrarily
DSelecting specific rows from a 2D array
Explain fancy indexing with integer arrays in NumPy and give a simple example.
Think about how you pick specific items from a list using their positions.
You got /3 concepts.
    Describe how you can modify elements in a NumPy array using fancy indexing.
    Consider how you change values at certain positions in a list.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does fancy indexing with integer arrays in NumPy allow you to do?
      easy
      A. Create a new array filled with zeros
      B. Sort an array in ascending order
      C. Select multiple elements from an array using a list of positions
      D. Change the data type of an array

      Solution

      1. Step 1: Understand fancy indexing

        Fancy indexing uses a list or array of integers to pick elements by their positions.
      2. Step 2: Identify the correct operation

        It selects multiple elements from the original array based on given indices.
      3. Final Answer:

        Select multiple elements from an array using a list of positions -> Option C
      4. Quick Check:

        Fancy indexing = select elements by positions [OK]
      Hint: Fancy indexing picks elements by position list [OK]
      Common Mistakes:
      • Confusing fancy indexing with sorting
      • Thinking it changes data type
      • Assuming it creates arrays of zeros
      2. Which of the following is the correct syntax to select elements at positions 0, 2, and 4 from a NumPy array arr using fancy indexing?
      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 fancy indexing syntax

        Fancy indexing uses double square brackets with a list or array of indices inside.
      2. Step 2: Match syntax to options

        Only arr[[0, 2, 4]] uses correct double brackets and list format.
      3. Final Answer:

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

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

      Solution

      1. Step 1: Understand the array and indices

        Original array is [10, 20, 30, 40, 50]. Indices are [1, 3, 4].
      2. Step 2: Select elements at given indices

        Elements at positions 1, 3, 4 are 20, 40, 50 respectively.
      3. Final Answer:

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

        arr[1,3,4] = [20 40 50] [OK]
      Hint: Match indices to array positions to get output [OK]
      Common Mistakes:
      • Mixing up indices and values
      • Using wrong positions from array
      • Confusing slicing with fancy indexing
      4. Identify the error in the following code snippet:
      import numpy as np
      arr = np.array([5, 10, 15, 20])
      indices = [1, 4]
      print(arr[indices])
      medium
      A. IndexError because index 4 is out of bounds
      B. SyntaxError due to wrong brackets
      C. TypeError because indices is a list
      D. No error, prints [10 20]

      Solution

      1. Step 1: Check array size and indices

        Array length is 4, valid indices are 0 to 3. Index 4 is invalid.
      2. Step 2: Understand error type

        Accessing index 4 causes IndexError: index out of bounds.
      3. Final Answer:

        IndexError because index 4 is out of bounds -> Option A
      4. Quick Check:

        Index 4 invalid for length 4 array [OK]
      Hint: Check if all indices are within array length [OK]
      Common Mistakes:
      • Assuming list indices are always valid
      • Confusing syntax errors with index errors
      • Thinking list indices cause type errors
      5. Given a 2D NumPy array arr = np.array([[1,2,3],[4,5,6],[7,8,9]]), how can you use fancy indexing to select elements at positions (0,2), (1,0), and (2,1) and create a new 1D array with these values?
      hard
      A. arr[[0,2,1], [2,1,0]]
      B. arr[[0,1,2], [2,0,1]]
      C. arr[[2,1,0], [0,1,2]]
      D. arr[[0,1,2]][[2,0,1]]

      Solution

      1. Step 1: Understand 2D fancy indexing

        To select elements at (row, col) positions, use two index arrays: one for rows, one for columns.
      2. Step 2: Match given positions to index arrays

        Positions are (0,2), (1,0), (2,1), so rows = [0,1,2], cols = [2,0,1].
      3. Step 3: Use fancy indexing syntax

        Use arr[[0,1,2], [2,0,1]] to get elements [3,4,8].
      4. Final Answer:

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

        Rows and cols arrays match positions [OK]
      Hint: Use two index arrays: rows and columns [OK]
      Common Mistakes:
      • Mixing row and column indices order
      • Using chained indexing instead of fancy indexing
      • Using wrong index arrays for positions
      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