Bird
Raised Fist0
NumPydata~20 mins

np.split() for dividing arrays in NumPy - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
np.split Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of np.split() with equal splits
What is the output of the following code?
import numpy as np
arr = np.array([10, 20, 30, 40, 50, 60])
splits = np.split(arr, 3)
print(splits)
NumPy
import numpy as np
arr = np.array([10, 20, 30, 40, 50, 60])
splits = np.split(arr, 3)
print(splits)
A[array([10, 20, 30, 40]), array([50, 60])]
B[array([10, 20, 30]), array([40, 50, 60])]
C[array([10]), array([20, 30, 40]), array([50, 60])]
D[array([10, 20]), array([30, 40]), array([50, 60])]
Attempts:
2 left
💡 Hint
np.split divides the array into equal parts if possible.
❓ Predict Output
intermediate
2:00remaining
Output of np.split() with indices_or_sections as list
What is the output of this code?
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
splits = np.split(arr, [2, 5])
print(splits)
NumPy
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
splits = np.split(arr, [2, 5])
print(splits)
A[array([1, 2]), array([3, 4, 5]), array([6, 7])]
B[array([1, 2, 3]), array([4, 5]), array([6, 7])]
C[array([1, 2]), array([3, 4]), array([5, 6, 7])]
D[array([1]), array([2, 3, 4]), array([5, 6, 7])]
Attempts:
2 left
💡 Hint
The list [2, 5] means split before index 2 and before index 5.
❓ data_output
advanced
1:30remaining
Number of sub-arrays after splitting
How many sub-arrays are created by this code?
import numpy as np
arr = np.arange(12)
splits = np.split(arr, [3, 7, 10])
print(len(splits))
NumPy
import numpy as np
arr = np.arange(12)
splits = np.split(arr, [3, 7, 10])
print(len(splits))
A4
B3
C5
D6
Attempts:
2 left
💡 Hint
Number of sub-arrays is one more than the number of split indices.
🔧 Debug
advanced
1:30remaining
Error raised by np.split with invalid split
What error does this code raise?
import numpy as np
arr = np.array([1, 2, 3, 4])
splits = np.split(arr, 3)
NumPy
import numpy as np
arr = np.array([1, 2, 3, 4])
splits = np.split(arr, 3)
AIndexError: index out of bounds
BValueError: array split does not result in an equal division
CTypeError: indices_or_sections must be an integer or 1-D array
DNo error, splits into 3 parts
Attempts:
2 left
💡 Hint
The array length is not divisible by 3.
🚀 Application
expert
2:30remaining
Using np.split to divide a 2D array by columns
Given a 2D array with shape (4, 6), which option correctly splits it into three arrays each with 2 columns?
import numpy as np
arr = np.arange(24).reshape(4, 6)
splits = np.split(arr, ?, axis=1)
print([s.shape for s in splits])
NumPy
import numpy as np
arr = np.arange(24).reshape(4, 6)
splits = np.split(arr, ?, axis=1)
print([s.shape for s in splits])
A[0, 2, 4]
B3
C[2, 4]
D[1, 3, 5]
Attempts:
2 left
💡 Hint
Split indices mark column positions where to split.

Practice

(1/5)
1. What does the np.split() function do in NumPy?
easy
A. It merges multiple arrays into one large array.
B. It divides an array into multiple smaller arrays at specified indices or into equal parts.
C. It sorts the elements of an array in ascending order.
D. It reshapes an array into a different shape without changing data.

Solution

  1. Step 1: Understand the purpose of np.split()

    The function is designed to break a large array into smaller arrays either by specifying split points or by dividing into equal parts.
  2. Step 2: Compare with other array functions

    Unlike merging, sorting, or reshaping, np.split specifically divides arrays.
  3. Final Answer:

    It divides an array into multiple smaller arrays at specified indices or into equal parts. -> Option B
  4. Quick Check:

    np.split() = divides array [OK]
Hint: Remember: split means break into parts [OK]
Common Mistakes:
  • Confusing split with merge
  • Thinking it sorts arrays
  • Mixing with reshape
2. Which of the following is the correct syntax to split a 1D NumPy array arr into 3 equal parts using np.split()?
easy
A. np.split(arr, 3)
B. np.split(arr, [3])
C. np.split(arr, indices=3)
D. np.split(arr, sections=3)

Solution

  1. Step 1: Recall np.split() syntax

    The function signature is np.split(array, indices_or_sections), where indices_or_sections can be an integer for equal parts.
  2. Step 2: Identify correct usage

    Passing 3 as the second argument splits the array into 3 equal parts. Keyword arguments like 'indices_or_sections' are not used explicitly in common syntax.
  3. Final Answer:

    np.split(arr, 3) -> Option A
  4. Quick Check:

    np.split(arr, 3) splits into 3 parts [OK]
Hint: Use integer directly for equal parts [OK]
Common Mistakes:
  • Using list instead of integer for equal parts
  • Wrong keyword arguments
  • Confusing indices with number of parts
3. What is the output of the following code?
import numpy as np
arr = np.array([10, 20, 30, 40, 50, 60])
splits = np.split(arr, [2, 4])
print(splits)
medium
A. [array([10]), array([20, 30, 40]), array([50, 60])]
B. [array([10, 20, 30]), array([40, 50, 60])]
C. [array([10, 20]), array([30, 40]), array([50, 60])]
D. [array([10, 20]), array([30]), array([40, 50, 60])]

Solution

  1. Step 1: Understand split indices

    The list [2, 4] means split at index 2 and then at index 4.
  2. Step 2: Divide the array accordingly

    arr[:2] = [10, 20], arr[2:4] = [30, 40], arr[4:] = [50, 60]
  3. Final Answer:

    [array([10, 20]), array([30, 40]), array([50, 60])] -> Option C
  4. Quick Check:

    Split at 2 and 4 gives 3 parts [OK]
Hint: Split indices mark where to cut array [OK]
Common Mistakes:
  • Misunderstanding split points
  • Off-by-one errors in slicing
  • Confusing output format
4. The following code throws an error. What is the cause?
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
splits = np.split(arr, 3)
print(splits)
medium
A. The array length is not divisible by 3, so equal splits are impossible.
B. np.split() requires a list of indices, not an integer.
C. The array must be 2D to use np.split().
D. The print statement syntax is incorrect.

Solution

  1. Step 1: Check array length and split parts

    The array length is 5, but we want to split into 3 equal parts.
  2. Step 2: Understand np.split() behavior

    np.split() requires the array length to be divisible by the number of parts when splitting equally, otherwise it raises an error.
  3. Final Answer:

    The array length is not divisible by 3, so equal splits are impossible. -> Option A
  4. Quick Check:

    Length 5 not divisible by 3 causes error [OK]
Hint: Check divisibility of array length by parts [OK]
Common Mistakes:
  • Using integer splits on incompatible length
  • Confusing np.split with np.array_split
  • Assuming print error
5. You have a 2D NumPy array data with shape (6, 4). You want to split it into 3 equal parts along the first axis (rows) for separate analysis. Which code correctly does this using np.split()?
hard
A. np.split(data, [1, 3, 5], axis=1)
B. np.split(data, 3, axis=1)
C. np.split(data, [2, 4], axis=1)
D. np.split(data, 3, axis=0)

Solution

  1. Step 1: Understand array shape and axis

    data has 6 rows and 4 columns. Splitting into 3 equal parts along rows means each part has 2 rows.
  2. Step 2: Use np.split() with correct axis and parts

    np.split(data, 3, axis=0) splits rows into 3 equal parts. axis=1 would split columns, which is not desired.
  3. Final Answer:

    np.split(data, 3, axis=0) -> Option D
  4. Quick Check:

    Split rows into 3 parts with axis=0 [OK]
Hint: Use axis=0 to split rows, axis=1 for columns [OK]
Common Mistakes:
  • Splitting along wrong axis
  • Using indices instead of number for equal parts
  • Ignoring array shape
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