0
0
NumpyHow-ToBeginner ยท 3 min read

How to Use flatten() in NumPy Arrays

Use flatten() on a NumPy array to convert it into a one-dimensional array. It returns a copy of the array collapsed into one dimension, preserving the original array unchanged.
๐Ÿ“

Syntax

The flatten() method is called on a NumPy array object without any arguments.

  • array.flatten(): Returns a new 1D array that is a flattened copy of the original array.

This method does not modify the original array.

python
flattened_array = array.flatten()
๐Ÿ’ป

Example

This example shows how to flatten a 2D NumPy array into a 1D array using flatten(). The original array remains unchanged.

python
import numpy as np

# Create a 2D array
array = np.array([[1, 2, 3], [4, 5, 6]])

# Flatten the array
flattened = array.flatten()

print("Original array:")
print(array)
print("\nFlattened array:")
print(flattened)
Output
Original array: [[1 2 3] [4 5 6]] Flattened array: [1 2 3 4 5 6]
โš ๏ธ

Common Pitfalls

One common mistake is expecting flatten() to modify the original array. It returns a new flattened copy instead. If you want to flatten the array in-place, use ravel() or reshape methods carefully.

Also, flatten() always returns a copy, which can use more memory for large arrays.

python
import numpy as np

array = np.array([[7, 8], [9, 10]])

# Wrong: expecting original array to change
array.flatten()
print("After flatten call, original array:")
print(array)

# Right: assign the flattened array to a new variable
flat = array.flatten()
print("Flattened copy:")
print(flat)
Output
After flatten call, original array: [[ 7 8] [ 9 10]] Flattened copy: [ 7 8 9 10]
๐Ÿ“Š

Quick Reference

MethodDescriptionReturns Copy?
flatten()Returns a 1D copy of the arrayYes
ravel()Returns a flattened array, view if possibleNo (usually)
reshape(-1)Reshapes array to 1D without copying if possibleNo (usually)
โœ…

Key Takeaways

Use array.flatten() to get a new 1D copy of any NumPy array.
flatten() does not change the original array; it returns a copy.
For memory efficiency, consider ravel() which returns a view when possible.
flatten() is simple and safe for flattening but uses extra memory.
Remember to assign the result of flatten() to a variable to keep the flattened array.