Bird
Raised Fist0
NumPydata~5 mins

np.expand_dims() and np.squeeze() in NumPy - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does np.expand_dims() do to an array?

np.expand_dims() adds a new axis (dimension) to an array at the specified position. This increases the number of dimensions by one.

Click to reveal answer
beginner
What is the purpose of np.squeeze()?

np.squeeze() removes axes of length 1 from an array, reducing its number of dimensions.

Click to reveal answer
beginner
How would you add a new axis as the first dimension to a 1D array a using np.expand_dims()?

Use np.expand_dims(a, axis=0). This changes shape from (n,) to (1, n).

Click to reveal answer
intermediate
If an array has shape (1, 5, 1), what will be its shape after applying np.squeeze()?

The shape will be (5,) because all axes with length 1 are removed.

Click to reveal answer
intermediate
Can np.squeeze() remove a specific axis only?

Yes, by specifying the axis parameter, np.squeeze() removes the axis only if its length is 1. Otherwise, it raises an error.

Click to reveal answer
What does np.expand_dims(arr, axis=1) do to a 1D array arr of shape (4,)?
AAdds a new axis at position 1, resulting in shape (4, 1)
BAdds a new axis at position 0, resulting in shape (1, 4)
CRemoves all axes of length 1
DDoes nothing
What will be the shape after np.squeeze() is applied to an array of shape (1, 3, 1, 5)?
A(1, 3, 1, 5)
B(3, 5)
C(3, 1, 5)
D(1, 3, 5)
Which function would you use to add a dimension to a 2D array to make it 3D?
Anp.expand_dims()
Bnp.squeeze()
Cnp.reshape()
Dnp.flatten()
What happens if you try np.squeeze() on an axis that is not length 1 when specifying the axis parameter?
AIt removes the axis anyway
BIt adds a new axis
CIt raises an error
DIt ignores that axis and removes others
If you have a 1D array with shape (10,), how can you convert it to shape (10, 1) using np.expand_dims()?
Anp.expand_dims(arr, axis=0)
Bnp.squeeze(arr)
Cnp.reshape(arr, (10, 1))
Dnp.expand_dims(arr, axis=1)
Explain in your own words what np.expand_dims() and np.squeeze() do to an array's shape.
Think about adding or removing dimensions that have size 1.
You got /3 concepts.
    Describe a real-life example where you might need to use np.expand_dims() or np.squeeze() when working with data.
    Consider how images or time series data might need reshaping.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does np.expand_dims() do to a NumPy array?
      easy
      A. Adds a new dimension at the specified axis
      B. Removes all dimensions of size one
      C. Flattens the array into one dimension
      D. Changes the data type of the array

      Solution

      1. Step 1: Understand the function purpose

        np.expand_dims() is used to add a new axis to an array, increasing its dimensions.
      2. Step 2: Compare with other options

        Removing dimensions or flattening is done by other functions like np.squeeze() or reshape(). Changing data type is unrelated.
      3. Final Answer:

        Adds a new dimension at the specified axis -> Option A
      4. Quick Check:

        np.expand_dims() = Adds dimension [OK]
      Hint: Expand dims adds axis, squeeze removes axis [OK]
      Common Mistakes:
      • Confusing expand_dims with squeeze
      • Thinking it changes data values
      • Assuming it flattens the array
      2. Which of the following is the correct syntax to add a new axis at position 1 using np.expand_dims() on array a?
      easy
      A. np.expand_dims(a, axis=0)
      B. np.expand_dims(a, 0)
      C. np.expand_dims(a, axis=1)
      D. np.expand_dims(a, axis=2)

      Solution

      1. Step 1: Check the function signature

        np.expand_dims(array, axis) requires the axis parameter to specify where to add the new dimension.
      2. Step 2: Identify correct axis value

        Axis=1 adds the new dimension at position 1. np.expand_dims(a, 0) (positional) and np.expand_dims(a, axis=0) add the dimension at position 0. np.expand_dims(a, axis=2) causes an AxisError since valid axes are -2 to 1 for a 1D array.
      3. Final Answer:

        np.expand_dims(a, axis=1) -> Option C
      4. Quick Check:

        Use axis=1 to add dimension at position 1 [OK]
      Hint: Use axis= to specify position clearly [OK]
      Common Mistakes:
      • Omitting axis keyword and confusing position
      • Using wrong axis number
      • Mixing axis=0 and axis=1
      3. What is the shape of the array after applying np.squeeze() to arr = np.array([[[1], [2], [3]]])?
      medium
      A. (3,)
      B. (1, 3, 1)
      C. (3, 1)
      D. (3, 1, 1)

      Solution

      1. Step 1: Check original shape

        arr has shape (1, 3, 1) because it is a 3D array with one element in first and last dimension.
      2. Step 2: Apply np.squeeze()

        np.squeeze() removes all dimensions of size 1, so the first and last dimensions are removed, leaving shape (3,).
      3. Final Answer:

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

        squeeze removes size 1 dims = (3,) [OK]
      Hint: Squeeze removes all size 1 dims from shape [OK]
      Common Mistakes:
      • Assuming squeeze removes only one dimension
      • Confusing original shape with squeezed shape
      • Thinking squeeze flattens the array
      4. Given arr = np.array([1, 2, 3]), which code will cause an error?
      medium
      A. np.expand_dims(arr, axis=-1)
      B. np.expand_dims(arr, axis=0)
      C. np.squeeze(arr)
      D. np.expand_dims(arr, axis=3)

      Solution

      1. Step 1: Check original array shape

        arr has shape (3,), so it has 1 dimension.
      2. Step 2: Validate axis values for expand_dims

        Valid axis values for adding a new dimension are between -2 and 1 (inclusive) because adding a dimension increases rank by 1. Axis=3 is out of bounds and causes an error.
      3. Final Answer:

        np.expand_dims(arr, axis=3) causes error -> Option D
      4. Quick Check:

        Axis out of range causes error [OK]
      Hint: Axis must be in valid range for expand_dims [OK]
      Common Mistakes:
      • Using axis larger than array ndim + 1
      • Confusing axis indexing with array shape
      • Assuming squeeze can cause error on 1D arrays
      5. You have a 2D array data with shape (5, 1). You want to prepare it for a machine learning model that expects input shape (5,). Which code correctly reshapes data using np.squeeze() and np.expand_dims()?
      hard
      A. np.expand_dims(np.squeeze(data), axis=1)
      B. np.squeeze(data)
      C. np.squeeze(np.expand_dims(data, axis=-1))
      D. np.expand_dims(data, axis=-1)

      Solution

      1. Step 1: Understand the original shape and target shape

        data shape is (5, 1). The model expects (5,), so we need to remove the extra dimension.
      2. Step 2: Use np.squeeze() to remove size 1 dimension

        np.squeeze(data) removes the dimension of size 1, resulting in shape (5,). Adding dimensions again is unnecessary and would change shape incorrectly.
      3. Final Answer:

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

        Squeeze removes extra dims to match model input [OK]
      Hint: Squeeze to remove size 1 dims for model input [OK]
      Common Mistakes:
      • Adding dimensions instead of removing
      • Using expand_dims unnecessarily
      • Not matching model expected input 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