0
0
NumPydata~20 mins

Slicing rows and columns in NumPy - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Slicing Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of slicing specific rows and columns in a NumPy array
What is the output of the following code snippet that slices rows and columns from a NumPy array?
NumPy
import numpy as np
arr = np.array([[10, 20, 30, 40],
                [50, 60, 70, 80],
                [90, 100, 110, 120],
                [130, 140, 150, 160]])
result = arr[1:3, 2:4]
print(result)
A
[[60 70]
 [100 110]]
B
[[ 70  80]
 [110 120]]
C
[[50 60 70 80]
 [90 100 110 120]]
D
[[70 80 90]
 [110 120 130]]
Attempts:
2 left
💡 Hint
Remember that slicing arr[a:b, c:d] selects rows from a to b-1 and columns from c to d-1.
data_output
intermediate
1:30remaining
Number of elements after slicing rows and columns
Given the NumPy array below, how many elements are in the sliced array `arr[::2, 1:4:2]`?
NumPy
import numpy as np
arr = np.arange(24).reshape(4,6)
sliced = arr[::2, 1:4:2]
print(sliced)
A4
B6
C3
D8
Attempts:
2 left
💡 Hint
Count how many rows and columns are selected by the slice.
🔧 Debug
advanced
2:00remaining
Identify the error in slicing a 2D NumPy array
What error will the following code raise when slicing the array?
NumPy
import numpy as np
arr = np.array([[1,2,3],[4,5,6],[7,8,9]])
result = arr[1, 2:]
print(result[1])
AValueError: too many indices for array
BTypeError: only integer scalar arrays can be converted to a scalar index
CNo error, output is 9
DIndexError: index 1 is out of bounds for axis 0 with size 1
Attempts:
2 left
💡 Hint
Check the shape of the sliced array before accessing index 1.
visualization
advanced
2:30remaining
Visualize the sliced subarray from a heatmap
Given the heatmap of a 5x5 array, which sliced subarray corresponds to `arr[1:4, 0:3]`?
NumPy
import numpy as np
import matplotlib.pyplot as plt
arr = np.arange(25).reshape(5,5)
plt.imshow(arr, cmap='viridis')
plt.colorbar()
plt.title('Original 5x5 Array Heatmap')
plt.show()
A
[[ 5  6  7]
 [10 11 12]
 [15 16 17]]
B
[[ 5  6  7]
 [10 11 12]
 [15 16 17]
 [20 21 22]]
C
[[ 1  2  3]
 [ 6  7  8]
 [11 12 13]]
D
[[ 0  1  2]
 [ 5  6  7]
 [10 11 12]]
Attempts:
2 left
💡 Hint
Remember slicing rows 1 to 3 and columns 0 to 2 means rows 1,2,3 and columns 0,1,2.
🚀 Application
expert
3:00remaining
Extract diagonal blocks using slicing in a large NumPy array
You have a 6x6 NumPy array representing a matrix divided into four 3x3 blocks. Which slice extracts the bottom-right 3x3 block?
NumPy
import numpy as np
matrix = np.arange(36).reshape(6,6)
# Extract bottom-right block here
block = matrix[3:6, 3:6]
print(block)
Amatrix[0:3, 3:6]
Bmatrix[3:6, 0:3]
Cmatrix[3:6, 3:6]
Dmatrix[0:3, 0:3]
Attempts:
2 left
💡 Hint
The bottom-right block is the last 3 rows and last 3 columns.