Bird
Raised Fist0
NumPydata~5 mins

Shuffling arrays in NumPy - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What does shuffling an array mean in data science?
Shuffling an array means rearranging its elements in a random order. It helps to mix data so that patterns or order do not bias analysis or models.
Click to reveal answer
beginner
Which NumPy function is used to shuffle arrays in-place?
The function numpy.random.shuffle() shuffles the elements of an array in-place, meaning it changes the original array order randomly.
Click to reveal answer
intermediate
How does numpy.random.shuffle() behave differently for 1D and 2D arrays?
For 1D arrays, it shuffles all elements randomly. For 2D arrays, it shuffles only the rows, keeping the order of elements within each row unchanged.
Click to reveal answer
beginner
Why is shuffling data important before training machine learning models?
Shuffling prevents the model from learning the order of data, which could cause bias. It ensures the model sees a random mix, improving generalization.
Click to reveal answer
intermediate
What is the difference between numpy.random.shuffle() and numpy.random.permutation()?
shuffle() changes the original array in-place. permutation() returns a new shuffled array, leaving the original unchanged.
Click to reveal answer
What does numpy.random.shuffle() do to a 2D array?
AShuffles the rows randomly
BShuffles all elements randomly
CShuffles the columns randomly
DDoes not change the array
Which function returns a new shuffled array without changing the original?
Anumpy.random.shuffle()
Bnumpy.random.permutation()
Cnumpy.shuffle()
Dnumpy.random.sample()
Why should you shuffle data before training a model?
ATo speed up training
BTo increase data accuracy
CTo reduce data size
DTo prevent bias from data order
What happens when you use numpy.random.shuffle() on a 1D array?
AThe array elements are shuffled randomly
BThe array is sorted
CThe array is reversed
DNothing changes
Is numpy.random.shuffle() a pure function (does it return a new array)?
AYes, it returns a new shuffled array
BYes, it returns a sorted array
CNo, it shuffles the array in-place
DNo, it only returns the indices
Explain how to shuffle a 1D NumPy array and why shuffling is useful in data science.
Think about randomizing data before training models.
You got /4 concepts.
    Describe the difference between numpy.random.shuffle() and numpy.random.permutation() with examples.
    One modifies the original, the other creates a new array.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does np.random.shuffle() do to a NumPy array?
      easy
      A. Randomly rearranges the elements of the array in-place
      B. Sorts the array elements in ascending order
      C. Creates a new shuffled copy of the array without changing the original
      D. Reverses the order of elements in the array

      Solution

      1. Step 1: Understand the function purpose

        np.random.shuffle() is designed to mix elements randomly within the array.
      2. Step 2: Check how it modifies the array

        This function changes the original array directly (in-place), not creating a new one.
      3. Final Answer:

        Randomly rearranges the elements of the array in-place -> Option A
      4. Quick Check:

        Shuffle = random in-place rearrangement [OK]
      Hint: Shuffle mixes elements inside the same array [OK]
      Common Mistakes:
      • Thinking shuffle returns a new array
      • Confusing shuffle with sorting
      • Assuming shuffle reverses elements
      2. Which of the following is the correct syntax to shuffle a 1D NumPy array named arr?
      easy
      A. np.random.shuffle(arr, axis=1)
      B. np.shuffle(arr)
      C. arr.shuffle()
      D. np.random.shuffle(arr)

      Solution

      1. Step 1: Identify the correct function call

        The shuffle function is inside the np.random module, so it must be called as np.random.shuffle().
      2. Step 2: Check the parameters

        It takes the array as the only argument. The axis parameter is not valid for 1D arrays.
      3. Final Answer:

        np.random.shuffle(arr) -> Option D
      4. Quick Check:

        Correct shuffle syntax = np.random.shuffle(array) [OK]
      Hint: Use np.random.shuffle(array) to shuffle in-place [OK]
      Common Mistakes:
      • Using np.shuffle instead of np.random.shuffle
      • Calling shuffle as a method on the array
      • Passing axis parameter incorrectly
      3. What will be the output of the following code?
      import numpy as np
      arr = np.array([1, 2, 3, 4, 5])
      np.random.shuffle(arr)
      print(arr)
      medium
      A. [1 2 3 4 5]
      B. [5 4 3 2 1]
      C. A randomly shuffled version of [1 2 3 4 5]
      D. Error because shuffle returns a new array

      Solution

      1. Step 1: Understand shuffle effect on array

        np.random.shuffle(arr) rearranges elements randomly in-place, so arr changes order.
      2. Step 2: Predict output of print

        Since shuffle is random, the printed array will be a shuffled version of the original, not sorted or reversed.
      3. Final Answer:

        A randomly shuffled version of [1 2 3 4 5] -> Option C
      4. Quick Check:

        Shuffle output = random order of original array [OK]
      Hint: Shuffle changes order randomly, output varies each run [OK]
      Common Mistakes:
      • Expecting original order after shuffle
      • Thinking shuffle returns a new array
      • Assuming shuffle sorts or reverses
      4. Identify the error in the following code snippet:
      import numpy as np
      arr = np.array([[1, 2], [3, 4]])
      np.random.shuffle(arr, axis=1)
      print(arr)
      medium
      A. shuffle does not accept an axis argument
      B. arr must be 1D to shuffle
      C. shuffle returns a new array, so assignment is needed
      D. np.random.shuffle cannot shuffle 2D arrays

      Solution

      1. Step 1: Check shuffle function parameters

        np.random.shuffle() only accepts the array argument; it does not have an axis parameter.
      2. Step 2: Understand shuffle behavior on 2D arrays

        Shuffle works in-place on the first axis of multi-dimensional arrays by default, no axis argument needed.
      3. Final Answer:

        shuffle does not accept an axis argument -> Option A
      4. Quick Check:

        shuffle axis param invalid = error [OK]
      Hint: np.random.shuffle has no axis parameter [OK]
      Common Mistakes:
      • Passing axis argument to shuffle
      • Thinking shuffle returns a new array
      • Believing shuffle only works on 1D arrays
      5. You have a 2D NumPy array representing 5 samples with 3 features each:
      data = np.array([[10, 20, 30],
                       [40, 50, 60],
                       [70, 80, 90],
                       [15, 25, 35],
                       [45, 55, 65]])
      You want to shuffle the samples (rows) but keep the feature order intact. Which code correctly does this?
      hard
      A. np.random.shuffle(data.T)
      B. np.random.shuffle(data)
      C. np.random.permutation(data)
      D. np.random.shuffle(data, axis=1)

      Solution

      1. Step 1: Understand shuffle on 2D arrays

        np.random.shuffle() shuffles along the first axis (rows) in-place, which is what we want.
      2. Step 2: Evaluate other options

        np.random.shuffle(data.T) shuffles columns (wrong axis), np.random.permutation(data) returns a new shuffled array (not in-place), np.random.shuffle(data, axis=1) is invalid (axis param not accepted).
      3. Final Answer:

        np.random.shuffle(data) -> Option B
      4. Quick Check:

        Shuffle rows in-place = np.random.shuffle(data) [OK]
      Hint: Shuffle rows by calling np.random.shuffle on 2D array [OK]
      Common Mistakes:
      • Trying to shuffle columns by transposing
      • Expecting shuffle to return a new array
      • Passing axis parameter to shuffle