w3resource

How to flatten a 2D NumPy array in 'C' and 'F' order?


Write a NumPy program that creates a 2D array of shape (4, 5) and use flatten(order='C') and flatten(order='F'). Print both flattened arrays.

Sample Solution:

Python Code:

import numpy as np

# Create a 2D array of shape (4, 5)
array_2d = np.array([[1, 2, 3, 4, 5],
                     [6, 7, 8, 9, 10],
                     [11, 12, 13, 14, 15],
                     [16, 17, 18, 19, 20]])

# Flatten the array in row-major ('C') order
flattened_c = array_2d.flatten(order='C')

# Print the flattened array in 'C' order
print("Flattened array in 'C' order:", flattened_c)

# Flatten the array in column-major ('F') order
flattened_f = array_2d.flatten(order='F')

# Print the flattened array in 'F' order
print("Flattened array in 'F' order:", flattened_f)

Output:

Flattened array in 'C' order: [ 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20]
Flattened array in 'F' order: [ 1  6 11 16  2  7 12 17  3  8 13 18  4  9 14 19  5 10 15 20]

Explanation:

  • Import NumPy library: We start by importing the NumPy library to handle array operations.
  • Create a 2D array: We create a 2D array array_2d of shape (4, 5) using np.array().
  • Flatten in 'C' order: We use the flatten(order='C') method to flatten array_2d in row-major order (C-style), resulting in flattened_c.
  • Print the 'C' order array: We print flattened_c to display the flattened array in 'C' order.
  • Flatten in 'F' order: We use the flatten(order='F') method to flatten array_2d in column-major order (Fortran-style), resulting in flattened_f.
  • Print the 'F' order array: We print flattened_f to display the flattened array in 'F' order.

Python-Numpy Code Editor: