🐍 NumPy – Concatenating Arrays
In data science and scientific computing, data is often stored in multiple arrays. To analyze and process data efficiently, we frequently need to combine these arrays into a single structure.
NumPy provides several powerful functions for joining arrays, commonly known as array concatenation.
With NumPy, you can:
- Join one-dimensional arrays
- Combine rows and columns
- Merge multidimensional arrays
- Stack arrays along different axes
- Build large datasets from smaller pieces
Array concatenation is widely used in machine learning, data preprocessing, image processing, and numerical analysis.
What is Array Concatenation?
Concatenation means combining two or more arrays into a single array.
Example:
Array A:
[1, 2, 3]Array B:
[4, 5, 6]After concatenation:
[1, 2, 3, 4, 5, 6]Using np.concatenate()
The most common method for joining arrays is np.concatenate().
Syntax
np.concatenate((array1, array2), axis=0)Concatenating 1D Arrays
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
result = np.concatenate((a, b))
print(result)Output:
[1 2 3 4 5 6]Concatenating 2D Arrays
import numpy as np
a = np.array([
[1, 2],
[3, 4]
])
b = np.array([
[5, 6],
[7, 8]
])
result = np.concatenate((a, b))
print(result)Output:
[[1 2]
[3 4]
[5 6]
[7 8]]By default, concatenation occurs along rows (axis=0).
Understanding Axes
For a 2D array:
Axis 0 = Rows
Axis 1 = ColumnsExample:
[[1 2]
[3 4]]- Axis 0 moves vertically
- Axis 1 moves horizontally
Concatenating Along Columns
import numpy as np
a = np.array([
[1, 2],
[3, 4]
])
b = np.array([
[5, 6],
[7, 8]
])
result = np.concatenate((a, b), axis=1)
print(result)Output:
[[1 2 5 6]
[3 4 7 8]]Using np.stack()
The stack() function joins arrays along a new axis.
Syntax
np.stack((a, b), axis=0)Example
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
result = np.stack((a, b))
print(result)Output:
[[1 2 3]
[4 5 6]]Notice that a new dimension is created.
Horizontal Stacking (hstack)
The hstack() function joins arrays horizontally.
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
result = np.hstack((a, b))
print(result)Output:
[1 2 3 4 5 6]Vertical Stacking (vstack)
The vstack() function joins arrays vertically.
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
result = np.vstack((a, b))
print(result)Output:
[[1 2 3]
[4 5 6]]Depth Stacking (dstack)
The dstack() function stacks arrays along the third dimension.
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
result = np.dstack((a, b))
print(result)Output:
[[[1 4]
[2 5]
[3 6]]]Using column_stack()
Combine arrays as columns.
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
result = np.column_stack((a, b))
print(result)Output:
[[1 4]
[2 5]
[3 6]]Using row_stack()
Combine arrays as rows.
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
result = np.row_stack((a, b))
print(result)Output:
[[1 2 3]
[4 5 6]]Concatenating Multiple Arrays
You can join more than two arrays.
import numpy as np
a = np.array([1, 2])
b = np.array([3, 4])
c = np.array([5, 6])
result = np.concatenate((a, b, c))
print(result)Output:
[1 2 3 4 5 6]Shape Requirements
Arrays must have compatible dimensions.
Valid:
(2,3) + (2,3)Invalid:
(2,3) + (3,2)Example:
a = np.array([[1,2,3]])
b = np.array([[4,5]])
np.concatenate((a,b))Produces:
ValueErrorBecause the dimensions do not match.
Real-World Example
Combining monthly sales data.
import numpy as np
jan = np.array([120, 140, 160])
feb = np.array([130, 150, 170])
sales = np.concatenate((jan, feb))
print(sales)Output:
[120 140 160 130 150 170]This technique is frequently used in analytics pipelines.
Common Concatenation Functions
| Function | Purpose |
|---|---|
| concatenate() | General joining |
| stack() | Add new axis |
| hstack() | Horizontal join |
| vstack() | Vertical join |
| dstack() | Depth join |
| column_stack() | Create columns |
| row_stack() | Create rows |
Best Practices
- Verify shapes before concatenation.
- Use concatenate() for general-purpose joining.
- Use stack() when a new dimension is needed.
- Use hstack() and vstack() for readability.
- Avoid unnecessary concatenation inside loops.
Common Errors
Shape Mismatch
ValueError:
all input arrays must have same dimensionsAlways check:
print(a.shape)
print(b.shape)before concatenating.
Performance Considerations
Repeated concatenation inside loops can be slow.
Instead of:
result = np.array([])
for i in range(100):
result = np.concatenate((result, np.array([i])))Prefer:
data = []
for i in range(100):
data.append(i)
result = np.array(data)This is significantly faster.
Summary
NumPy provides multiple methods for joining arrays:
- concatenate()
- stack()
- hstack()
- vstack()
- dstack()
- column_stack()
- row_stack()
These functions make it easy to build larger datasets and reorganize data structures efficiently.
Conclusion
Array concatenation is a fundamental NumPy skill that allows you to merge data efficiently for analysis and machine learning workflows. By understanding the different concatenation methods and when to use them, you can write cleaner, faster, and more scalable Python code.


0 Comments