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
| Method | Description | Returns Copy? |
|---|---|---|
| flatten() | Returns a 1D copy of the array | Yes |
| ravel() | Returns a flattened array, view if possible | No (usually) |
| reshape(-1) | Reshapes array to 1D without copying if possible | No (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.