Numpy ndarray.flatten() method



The Numpy ndarray.flatten()method which is used to return a new 1-D array that is a copy of the original array which is flattened.

The ndarray.flat attribute which is an iterator and ndarray.flatten() which creates a new array.

We can specify the order of flattening as 'C' for row-major (C-style) order, 'F' for column-major (Fortran-style) order, 'A' for 'F' if the array is Fortran contiguous, 'C' otherwise and 'K' for the order the elements appear in memory.

Syntax

The syntax for the Numpy ndarray.flatten function is as follows −

ndarray.flatten(order='C')

Parameter

This function takes a single parameter i.e. 'C' which is row major which is by default.

We can assign 'F': column major, 'A': flatten in column-major order, if a is Fortran contiguous in memory, row-major order otherwise 'K': flatten a in the order the elements occur in the memory

Return Value

This function returns a one-dimensional numpy array which contains all the elements of the input array in the specified order.

Example 1

Following is the example of Numpy ndarray.flatten() method which shows flattening a 2D array into a 1D array in the default row-major order, resulting in [1, 2, 3, 4, 5, 6] −

import numpy as np

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

# Flattening the array using the default order ('C')
flattened_array = array_2d.flatten()

print("Original 2D array:")
print(array_2d)
print("\nFlattened array (row-major order):")
print(flattened_array)

Output

Original 2D array:
[[1 2 3]
 [4 5 6]]

Flattened array (row-major order):
[1 2 3 4 5 6]

Example 2

Here in this example we show how a 3D array is flattened into a 1D array in column-major order which yields [1, 5, 3, 7, 2, 6, 4, 8] −

import numpy as np

# Creating a 3D numpy array
array_3d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])

# Flattening the array using the 'F' order
flattened_array = array_3d.flatten(order='F')

print("Original 3D array:")
print(array_3d)
print("\nFlattened array (column-major order):")
print(flattened_array)

Output

Original 3D array:
[[[1 2]
  [3 4]]

 [[5 6]
  [7 8]]]

Flattened array (column-major order):
[1 5 3 7 2 6 4 8]

Example 3

Below example shows flattening a Fortran-contiguous array using the 'A' order which results in column-major order flattening, giving [1, 4, 2, 5, 3, 6] −

import numpy as np

# Creating a 2D numpy array with Fortran-contiguous memory layout
array_fortran = np.asfortranarray([[1, 2, 3], [4, 5, 6]])

# Flattening the array using the 'A' order
flattened_array = array_fortran.flatten(order='A')

print("Original Fortran-contiguous 2D array:")
print(array_fortran)
print("\nFlattened array ('A' order):")
print(flattened_array)

Output

Original Fortran-contiguous 2D array:
[[1 2 3]
 [4 5 6]]

Flattened array ('A' order):
[1 4 2 5 3 6]
numpy_array_manipulation.htm
Advertisements