Bird
Raised Fist0
NumPydata~10 mins

Slicing rows and columns in NumPy - Interactive Code Practice

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

Complete the code to select the first three rows of the array.

NumPy
import numpy as np
arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])
result = arr[1]
Drag options to blanks, or click blank then click option'
A[:3]
B[3:]
C[1:3]
D[:4]
Attempts:
3 left
💡 Hint
Common Mistakes
Using [3:] which selects rows starting from index 3, not the first three rows.
Using [:4] which selects four rows but the array only has four rows total.
Using [1:3] which selects rows 1 and 2, not the first three rows.
2fill in blank
medium

Complete the code to select the second column from all rows.

NumPy
import numpy as np
arr = np.array([[10, 20, 30], [40, 50, 60], [70, 80, 90]])
col = arr[1]
Drag options to blanks, or click blank then click option'
A[1, :]
B[:, 1]
C[:, 2]
D[1, 1]
Attempts:
3 left
💡 Hint
Common Mistakes
Using [1, :] which selects the second row, not the second column.
Using [:, 2] which selects the third column, not the second.
Using [1, 1] which selects a single element, not a column.
3fill in blank
hard

Fix the error in the code to select rows 1 and 2 and columns 0 and 1.

NumPy
import numpy as np
arr = np.array([[5, 6, 7], [8, 9, 10], [11, 12, 13]])
subset = arr[1]
Drag options to blanks, or click blank then click option'
A[0:2, 1:3]
B[1:2, 0:1]
C[1:3, 0:2]
D[1, 2, 0, 1]
Attempts:
3 left
💡 Hint
Common Mistakes
Using [1:2, 0:1] which selects only row 1 and column 0.
Using [0:2, 1:3] which selects wrong rows and columns.
Using [1, 2, 0, 1] which is invalid syntax for slicing.
4fill in blank
hard

Fill both blanks to create a dictionary with words as keys and their lengths if length is greater than 3.

NumPy
words = ['apple', 'bat', 'carrot', 'dog']
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 word instead of len(word) for the value.
Using word > 3 which compares string to number and causes error.
Using len(word) without a condition, which includes all words.
5fill in blank
hard

Fill all three blanks to create a dictionary with uppercase words as keys, their lengths as values, only if length is greater than 3.

NumPy
words = ['tree', 'cat', 'house', 'dog']
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) > 3
Dw.lower()
Attempts:
3 left
💡 Hint
Common Mistakes
Using w.lower() instead of w.upper() for keys.
Using w instead of len(w) for values.
Using wrong condition like w > 3 which causes error.

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