Stacking Arrays Vertically and Horizontally with np.vstack() and np.hstack()
📖 Scenario: Imagine you are organizing data from two different sensors. Each sensor gives you a small set of readings. You want to combine these readings to analyze them together.
🎯 Goal: You will create two small arrays of sensor readings, then combine them vertically and horizontally using np.vstack() and np.hstack(). Finally, you will print the combined arrays.
📋 What You'll Learn
Create two numpy arrays named sensor1 and sensor2 with exact values
Create a variable named combined_vertical using np.vstack() to stack arrays vertically
Create a variable named combined_horizontal using np.hstack() to stack arrays horizontally
Print both combined_vertical and combined_horizontal
💡 Why This Matters
🌍 Real World
Combining sensor data or measurements from different sources is common in data science to prepare data for analysis.
💼 Career
Understanding how to stack arrays helps in data preprocessing, a key skill for data scientists and analysts working with numerical data.
Progress0 / 4 steps
1
Create two numpy arrays with sensor readings
Import numpy as np. Create a numpy array called sensor1 with values [1, 2, 3] and another numpy array called sensor2 with values [4, 5, 6].
NumPy
Hint
Use np.array() to create arrays with the exact values given.
2
Stack the arrays vertically using np.vstack()
Create a variable called combined_vertical by stacking sensor1 and sensor2 vertically using np.vstack().
NumPy
Hint
Use np.vstack((sensor1, sensor2)) to stack arrays vertically.
3
Stack the arrays horizontally using np.hstack()
Create a variable called combined_horizontal by stacking sensor1 and sensor2 horizontally using np.hstack().
NumPy
Hint
Use np.hstack((sensor1, sensor2)) to stack arrays horizontally.
4
Print the vertically and horizontally stacked arrays
Print the variables combined_vertical and combined_horizontal to see the stacked arrays.
NumPy
Hint
Use print() to display both stacked arrays.
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
Step 1: Understand vertical stacking
np.vstack() stacks arrays by adding rows one below another.
Step 2: Compare with horizontal stacking
np.hstack() stacks arrays side by side by adding columns, so it is different.
Final Answer:
Stacks arrays vertically, adding rows -> Option A
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
Step 1: Check function call syntax
NumPy functions use parentheses and tuples for multiple arrays, so np.hstack((a, b)) is correct.
Step 2: Identify incorrect syntax
Square brackets, missing parentheses, or curly braces are invalid for function calls in Python.
Final Answer:
np.hstack((a, b)) -> Option C
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
Step 1: Understand np.vstack behavior
It stacks arrays vertically, so rows of y come below rows of x.
Step 2: Combine arrays row-wise
Result has 4 rows: first two from x, next two from y, each with 2 columns.
Final Answer:
[[1 2]
[3 4]
[5 6]
[7 8]] -> Option D
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
Step 1: Check shapes of arrays
a is shape (3,), b is shape (2,3). They differ in first dimension.
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).
Step 3: Result
No error occurs; arrays are concatenated.
Final Answer:
No error, outputs concatenated array -> Option A
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
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.
Step 2: Apply np.hstack
np.hstack((a, b)) concatenates columns, resulting in shape (2, 5).
Step 3: Verify other options
np.vstack((a, b)) would fail due to different column counts; transposes complicate shape and are unnecessary here.
Final Answer:
np.hstack((a, b)) -> Option B
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 unknownstrongwhile earning +1 Grip toward your certificate.