Bird
Raised Fist0
NumPydata~20 mins

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

Choose your learning style10 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.

Practice

(1/5)
1. What does the slicing notation array[1:3, 0:2] do on a 2D NumPy array?
easy
A. Selects rows 1 and 2, and columns 0 and 1
B. Selects rows 0 to 3 and columns 0 to 2
C. Selects rows 1 to 3 and columns 0 to 2
D. Selects rows 1 and 3, and columns 0 and 2

Solution

  1. Step 1: Understand row slicing 1:3

    This means select rows starting at index 1 up to but not including index 3, so rows 1 and 2.
  2. Step 2: Understand column slicing 0:2

    This means select columns starting at index 0 up to but not including index 2, so columns 0 and 1.
  3. Final Answer:

    Selects rows 1 and 2, and columns 0 and 1 -> Option A
  4. Quick Check:

    Slice end is excluded = A [OK]
Hint: Remember end index is excluded in slicing [OK]
Common Mistakes:
  • Including the end index in the slice
  • Confusing rows and columns order
  • Using commas incorrectly in slicing
2. Which of the following is the correct syntax to select all rows and columns 2 to 4 (inclusive start, exclusive end) from a NumPy array named arr?
easy
A. arr[2:4, :]
B. arr[:, 2:5]
C. arr[2:5, :]
D. arr[:, 2:4]

Solution

  1. Step 1: Identify rows and columns in slicing

    The first index before comma is rows, second is columns.
  2. Step 2: Select all rows and columns 2 to 4

    All rows means :, columns 2 to 4 means 2:5 because end is excluded.
  3. Final Answer:

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

    All rows = :, columns 2 to 4 = 2:5 [OK]
Hint: Use ':' for all rows or columns [OK]
Common Mistakes:
  • Swapping rows and columns in slicing
  • Using wrong end index in slice
  • Missing colon for all rows or columns
3. Given the NumPy array:
import numpy as np
arr = np.array([[10, 20, 30, 40],
                [50, 60, 70, 80],
                [90, 100, 110, 120]])
print(arr[0:2, 1:3])

What is the output?
medium
A. [[50 60] [90 100]]
B. [[10 20 30] [50 60 70]]
C. [[20 30 40] [60 70 80]]
D. [[20 30] [60 70]]

Solution

  1. Step 1: Slice rows 0 to 1

    Rows 0 and 1 are selected (indices 0 and 1), so first two rows.
  2. Step 2: Slice columns 1 to 2

    Columns 1 and 2 are selected (indices 1 and 2), so second and third columns.
  3. Final Answer:

    [[20 30] [60 70]] -> Option D
  4. Quick Check:

    Rows 0-1 and columns 1-2 slice = A [OK]
Hint: Remember slicing excludes the end index [OK]
Common Mistakes:
  • Including the end index in slice
  • Mixing up rows and columns
  • Printing the whole array instead of slice
4. What is wrong with this code snippet to select rows 1 to 3 and columns 0 to 2 from a NumPy array data?
slice = data[1:3, 0:2]
medium
A. It selects rows 1 and 2 only, not row 3
B. It causes a syntax error due to variable name 'slice'
C. It selects columns 0, 1, and 2 instead of 0 and 1
D. It selects rows 0 to 3 instead of 1 to 3

Solution

  1. Step 1: Examine row slicing 1:3

    In Python/NumPy slicing, the end index is exclusive, so 1:3 selects rows 1 and 2 only, not row 3.
  2. Step 2: Column slicing 0:2

    Selects columns 0 and 1 (excludes 2).
  3. Final Answer:

    It selects rows 1 and 2 only, not row 3 -> Option A
  4. Quick Check:

    End index excluded in slicing = A [OK]
Hint: Slicing excludes the end index [OK]
Common Mistakes:
  • Assuming slice includes end index
  • Ignoring variable naming conflicts
  • Confusing rows and columns in slicing
5. You have a 5x5 NumPy array arr. How do you extract the middle 3 rows and middle 3 columns as a new array?
hard
A. arr[0:3, 0:3]
B. arr[2:5, 2:5]
C. arr[1:4, 1:4]
D. arr[1:3, 1:3]

Solution

  1. Step 1: Identify middle rows in 5x5 array

    Rows are indexed 0 to 4. Middle 3 rows are indices 1, 2, 3, so slice 1:4.
  2. Step 2: Identify middle columns similarly

    Columns 1, 2, 3 are middle 3 columns, so slice 1:4.
  3. Final Answer:

    arr[1:4, 1:4] -> Option C
  4. Quick Check:

    Middle 3 rows and columns = 1:4 slice [OK]
Hint: Count indices carefully; middle 3 means 1 to 3 inclusive [OK]
Common Mistakes:
  • Using wrong slice end index
  • Selecting too few or too many rows/columns
  • Confusing zero-based indexing
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