It converts a flat (1D) index into a tuple of coordinate indices for a given shape of a multi-dimensional array.
Click to reveal answer
beginner
How do you use np.unravel_index() to find the 2D position of the flat index 5 in a shape (3, 4)?
Use np.unravel_index(5, (3, 4)). It returns (1, 1), meaning row 1, column 1 in the 3x4 array.
Click to reveal answer
intermediate
What is the output of np.unravel_index([3, 7], (3, 3))?
It returns two arrays: (array([1, 2]), array([0, 1])) which correspond to the row and column indices for flat indices 3 and 7 in a 3x3 array.
Click to reveal answer
beginner
Why is np.unravel_index() useful in real life?
It helps find the position in multi-dimensional data when you only have a single flat index, like finding a seat in a theater when you know the seat number but not the row and column.
Click to reveal answer
intermediate
What happens if you provide a flat index that is out of bounds for the given shape in np.unravel_index()?
NumPy raises an error because the flat index does not fit inside the array shape. The index must be less than the total number of elements.
Click to reveal answer
What does np.unravel_index(8, (3, 3)) return?
A(2, 2)
B(1, 2)
C(0, 8)
DError
✗ Incorrect
The flat index 8 corresponds to row 2, column 2 in a 3x3 array.
If you have a flat index array [0, 4, 7] and shape (3, 3), what does np.unravel_index() return?
A([0, 1, 2], [0, 2, 1])
B([0, 1, 2], [0, 0, 1])
CError
D([0, 1, 2], [0, 1, 1])
✗ Incorrect
Flat indices 0, 4, 7 correspond to positions (0,0), (1,1), and (2,1) respectively.
What is the required input for np.unravel_index()?
AOnly array shape
BMulti-dimensional index and array shape
CFlat index and array shape
DOnly flat index
✗ Incorrect
You need a flat index (or indices) and the shape of the array to convert to multi-dimensional indices.
What happens if you pass a flat index equal to the total number of elements in the array to np.unravel_index()?
AReturns (0, 0, ...)
BRaises an error
CReturns last element's position
DReturns None
✗ Incorrect
Flat indices must be less than the total number of elements; otherwise, an error is raised.
Which of these is a valid use case for np.unravel_index()?
AFinding multi-dimensional coordinates from a flat index
BFlattening a multi-dimensional array
CSorting array elements
DCalculating mean of array
✗ Incorrect
np.unravel_index() converts flat indices to multi-dimensional coordinates.
Explain how np.unravel_index() helps convert a flat index into multi-dimensional coordinates. Give a simple example.
Think about how a single number can point to a position in a grid.
You got /4 concepts.
Describe what happens if you provide an out-of-range flat index to np.unravel_index(). Why is this important?
Consider what happens if you try to find a seat number that doesn't exist.
You got /3 concepts.
Practice
(1/5)
1. What does np.unravel_index() do in NumPy?
easy
A. It returns the total number of elements in an array.
B. It converts a flat index into a tuple of coordinate indices for a given shape.
C. It reshapes an array into a new shape without changing data.
D. It flattens a multi-dimensional array into a one-dimensional array.
Solution
Step 1: Understand the function purpose
np.unravel_index() takes a flat index and a shape to find the multi-dimensional coordinates.
Step 2: Compare options with function behavior
Only It converts a flat index into a tuple of coordinate indices for a given shape. describes converting a flat index to multi-dimensional indices, which matches the function's purpose.
Final Answer:
It converts a flat index into a tuple of coordinate indices for a given shape. -> Option B
Quick Check:
Function purpose = convert flat index to coordinates [OK]
Hint: Remember: unravel means 'find coordinates' from flat index [OK]
Common Mistakes:
Confusing unravel_index with flatten or reshape functions
Thinking it returns the total number of elements
Assuming it changes the array data
2. Which of the following is the correct syntax to use np.unravel_index() for a flat index 5 in a shape (3, 3)?
easy
A. np.unravel_index((3, 3), 5)
B. np.unravel_index(5, 3, 3)
C. np.unravel_index(5, (3, 3))
D. np.unravel_index([5], (3, 3))
Solution
Step 1: Recall the function signature
The correct syntax is np.unravel_index(indices, shape), where indices is an integer or array and shape is a tuple.
Step 2: Match options to syntax
np.unravel_index(5, (3, 3)) matches the correct syntax with index 5 and shape (3, 3). np.unravel_index([5], (3, 3)) uses a list for index which is allowed but less common for single index.
Final Answer:
np.unravel_index(5, (3, 3)) -> Option C
Quick Check:
Syntax = np.unravel_index(index, shape) [OK]
Hint: Use np.unravel_index(index, shape) with shape as a tuple [OK]
Common Mistakes:
Swapping the order of arguments
Passing shape as separate numbers instead of a tuple
Using list instead of integer for single index without need
3. What is the output of the following code?
import numpy as np
index = 7
shape = (3, 3)
result = np.unravel_index(index, shape)
print(result)
medium
A. (1, 1)
B. (1, 2)
C. (2, 0)
D. (2, 1)
Solution
Step 1: Understand the shape and flat index
The shape is (3, 3), so the array has 3 rows and 3 columns. Flat indices go row-wise: 0 to 8.
Step 2: Calculate multi-dimensional indices for flat index 7
Index 7 corresponds to row = 7 // 3 = 2, column = 7 % 3 = 1, so position is (2, 1).
Final Answer:
(2, 1) -> Option D
Quick Check:
Row = 7//3=2, Col = 7%3=1 [OK]
Hint: Divide index by shape dims to find row, mod for column [OK]
Common Mistakes:
Mixing row and column order
Using zero-based index incorrectly
Confusing division and modulo operations
4. The code below raises an error. What is the cause?
import numpy as np
index = 10
shape = (3, 3)
result = np.unravel_index(index, shape)
print(result)
medium
A. Index 10 is out of bounds for shape (3, 3).
B. Shape must be a list, not a tuple.
C. np.unravel_index requires a 1D array, not a scalar index.
D. Missing import statement for numpy.
Solution
Step 1: Check the shape size
Shape (3, 3) means total elements = 3*3 = 9, so valid flat indices are 0 to 8.
Step 2: Analyze the index value
Index 10 is greater than 8, so it is out of bounds and causes an error.
Final Answer:
Index 10 is out of bounds for shape (3, 3). -> Option A
Quick Check:
Max index = 8, given index = 10 [OK]
Hint: Check if index < product of shape dims to avoid errors [OK]
Common Mistakes:
Assuming tuple shape is invalid
Thinking np.unravel_index needs array input only
Ignoring index bounds for given shape
5. You have a 3D array with shape (4, 3, 2). You want to find the multi-dimensional indices for flat indices [5, 10, 15]. Which code correctly returns these positions?
hard
A. np.unravel_index([5, 10, 15], (4, 3, 2))
B. np.unravel_index(5, 10, 15, (4, 3, 2))
C. np.unravel_index((5, 10, 15), (4, 3, 2))
D. np.unravel_index([5, 10, 15], 4, 3, 2)
Solution
Step 1: Understand input for multiple indices
To convert multiple flat indices, pass a list or array of indices as first argument and shape tuple as second.
Step 2: Match options to correct syntax
np.unravel_index([5, 10, 15], (4, 3, 2)) correctly passes a list of indices and the shape tuple. np.unravel_index((5, 10, 15), (4, 3, 2)) passes a tuple instead of list, which also works but less common. np.unravel_index(5, 10, 15, (4, 3, 2)) and D have wrong argument formats.
Final Answer:
np.unravel_index([5, 10, 15], (4, 3, 2)) -> Option A
Quick Check:
Multiple indices = list + shape tuple [OK]
Hint: Use list of indices and shape tuple for multiple positions [OK]
Common Mistakes:
Passing multiple indices as separate arguments
Using tuple instead of list for indices (less common but works)
Passing shape as separate numbers instead of tuple
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.