Bird
Raised Fist0
NumPydata~10 mins

np.vstack() and np.hstack() in NumPy - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - np.vstack() and np.hstack()
Start with arrays
↓
Choose stacking method
↓
np.vstack()
↓
Output combined array
We start with arrays, choose vertical or horizontal stacking, then combine arrays accordingly to get the output.
Execution Sample
NumPy
import numpy as np
arr1 = np.array([1, 2])
arr2 = np.array([3, 4])
v_stack = np.vstack((arr1, arr2))
h_stack = np.hstack((arr1, arr2))
This code stacks two 1D arrays vertically and horizontally using np.vstack() and np.hstack().
Execution Table
StepActionInput ArraysStacking MethodOutput Array
1Define arr1[1, 2]N/AN/A
2Define arr2[3, 4]N/AN/A
3Apply np.vstack[[1, 2], [3, 4]]Vertical stack[[1 2] [3 4]]
4Apply np.hstack[1, 2], [3, 4]Horizontal stack[1 2 3 4]
5EndN/AN/AN/A
💡 All arrays stacked; process complete.
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3After Step 4Final
arr1undefined[1 2][1 2][1 2][1 2][1 2]
arr2undefinedundefined[3 4][3 4][3 4][3 4]
v_stackundefinedundefinedundefined[[1 2] [3 4]][[1 2] [3 4]][[1 2] [3 4]]
h_stackundefinedundefinedundefinedundefined[1 2 3 4][1 2 3 4]
Key Moments - 2 Insights
Why does np.vstack() output a 2D array even if input arrays are 1D?
np.vstack() stacks arrays vertically by adding a new row dimension, so 1D arrays become rows in a 2D array, as shown in step 3 of the execution_table.
Why does np.hstack() output a 1D array when stacking two 1D arrays?
np.hstack() concatenates arrays along the horizontal axis, so two 1D arrays join end-to-end into a longer 1D array, as seen in step 4 of the execution_table.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at step 3. What is the shape of the output array from np.vstack()?
A(2, 2)
B(4,)
C(1, 4)
D(2,)
💡 Hint
Check the output array shape in the Output Array column at step 3.
At which step does np.hstack() produce the array [1 2 3 4]?
AStep 2
BStep 3
CStep 4
DStep 5
💡 Hint
Look at the Output Array column for the horizontal stack result.
If arr1 was a 2D array [[1, 2]], how would np.vstack((arr1, arr2)) change?
AIt would raise an error due to shape mismatch
BIt would stack arr2 as a new row below arr1
CIt would stack arr2 as a new column beside arr1
DIt would flatten both arrays before stacking
💡 Hint
Consider how np.vstack stacks arrays vertically and the shape compatibility.
Concept Snapshot
np.vstack() stacks arrays vertically (adds rows).
np.hstack() stacks arrays horizontally (adds columns).
Input arrays must have compatible shapes.
1D arrays become 2D in vstack, stay 1D in hstack.
Use for combining arrays along different axes.
Full Transcript
We start with two arrays arr1 and arr2. np.vstack stacks them vertically, making a 2D array with arr1 and arr2 as rows. np.hstack stacks them horizontally, joining them end-to-end in one 1D array. The execution table shows each step: defining arrays, applying vstack and hstack, and the resulting arrays. Variable tracker shows how variables change after each step. Key moments clarify why vstack outputs 2D arrays and hstack outputs 1D arrays for 1D inputs. The visual quiz tests understanding of output shapes and stacking behavior. The concept snapshot summarizes usage and behavior of np.vstack and np.hstack.

Practice

(1/5)
1. What does np.vstack() do with arrays?
easy
A. Stacks arrays vertically, adding rows
B. Stacks arrays horizontally, adding columns
C. Flattens arrays into one dimension
D. Splits arrays into smaller parts

Solution

  1. Step 1: Understand vertical stacking

    np.vstack() stacks arrays by adding rows one below another.
  2. Step 2: Compare with horizontal stacking

    np.hstack() stacks arrays side by side by adding columns, so it is different.
  3. Final Answer:

    Stacks arrays vertically, adding rows -> Option A
  4. Quick Check:

    np.vstack() = vertical stack [OK]
Hint: Remember 'v' in vstack means vertical stacking [OK]
Common Mistakes:
  • Confusing vertical and horizontal stacking
  • Thinking vstack flattens arrays
  • Assuming vstack splits arrays
2. Which of the following is the correct syntax to horizontally stack two arrays a and b using NumPy?
easy
A. np.hstack(a, b)
B. np.hstack[a, b]
C. np.hstack((a, b))
D. np.hstack{a, b}

Solution

  1. Step 1: Check function call syntax

    NumPy functions use parentheses and tuples for multiple arrays, so np.hstack((a, b)) is correct.
  2. Step 2: Identify incorrect syntax

    Square brackets, missing parentheses, or curly braces are invalid for function calls in Python.
  3. Final Answer:

    np.hstack((a, b)) -> Option C
  4. Quick Check:

    Correct function call uses parentheses and tuple [OK]
Hint: Use double parentheses for multiple arrays in hstack [OK]
Common Mistakes:
  • Using square brackets instead of parentheses
  • Passing arrays without tuple parentheses
  • Using curly braces which are invalid
3. What is the output of the following code?
import numpy as np
x = np.array([[1, 2], [3, 4]])
y = np.array([[5, 6], [7, 8]])
result = np.vstack((x, y))
print(result)
medium
A. [[1 2 5 6] [3 4 7 8]]
B. [[1 2 3 4] [5 6 7 8]]
C. [[1 2] [5 6] [3 4] [7 8]]
D. [[1 2] [3 4] [5 6] [7 8]]

Solution

  1. Step 1: Understand np.vstack behavior

    It stacks arrays vertically, so rows of y come below rows of x.
  2. Step 2: Combine arrays row-wise

    Result has 4 rows: first two from x, next two from y, each with 2 columns.
  3. Final Answer:

    [[1 2] [3 4] [5 6] [7 8]] -> Option D
  4. Quick Check:

    Vertical stack adds rows below [OK]
Hint: vstack adds rows; hstack adds columns [OK]
Common Mistakes:
  • Confusing vstack with hstack output
  • Expecting horizontal concatenation
  • Misreading array shapes
4. What error will occur when running this code?
import numpy as np
a = np.array([1, 2, 3])
b = np.array([[4, 5, 6], [7, 8, 9]])
result = np.hstack((a, b))
print(result)
medium
A. No error, outputs concatenated array
B. TypeError because inputs are not lists
C. SyntaxError due to wrong function call
D. ValueError due to incompatible shapes

Solution

  1. Step 1: Check shapes of arrays

    a is shape (3,), b is shape (2,3). They differ in first dimension.
  2. Step 2: Understand hstack requirements

    np.hstack() stacks arrays along their second axis if possible. Here, a is 1D and b is 2D, but NumPy broadcasts a to shape (1,3) and stacks along axis 1, resulting in shape (3,3).
  3. Step 3: Result

    No error occurs; arrays are concatenated.
  4. Final Answer:

    No error, outputs concatenated array -> Option A
  5. Quick Check:

    NumPy broadcasts 1D array and concatenates [OK]
Hint: NumPy can broadcast 1D arrays when stacking [OK]
Common Mistakes:
  • Assuming hstack requires same number of rows
  • Confusing ValueError with TypeError
  • Ignoring NumPy broadcasting rules
5. Given two arrays:
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6, 7], [8, 9, 10]])
Which method correctly combines them into a single array with shape (2, 5) by stacking horizontally?
hard
A. np.vstack((a, b))
B. np.hstack((a, b))
C. np.hstack((a.T, b.T)).T
D. np.vstack((a.T, b.T)).T

Solution

  1. Step 1: Check shapes of arrays

    a shape is (2, 2), b shape is (2, 3). Both have 2 rows, so horizontal stacking is possible.
  2. Step 2: Apply np.hstack

    np.hstack((a, b)) concatenates columns, resulting in shape (2, 5).
  3. Step 3: Verify other options

    np.vstack((a, b)) would fail due to different column counts; transposes complicate shape and are unnecessary here.
  4. Final Answer:

    np.hstack((a, b)) -> Option B
  5. Quick Check:

    Same rows, hstack adds columns [OK]
Hint: For same rows, use hstack to add columns [OK]
Common Mistakes:
  • Using vstack with different column counts
  • Overcomplicating with transpose
  • Mixing up row and column dimensions
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