# Numpy Flatten Tutorial | numpy.ndarray.flatten() ## Introduction

In Python Numpy library numpy.ndarray.flatten() is used to flatten multi-dimensional arrays into one-dimensional arrays. In this article, we will explore the syntax, functionality, and various examples of np.flatten() function.

## Syntax

The syntax for Numpy flatten() is straightforward as shown below :

numpy.ndarray.flatten(order=’C’)

Parameters:

• order (optional): The order parameter determines how elements are arranged in the flattened array. It can take any of the following values:
• ‘C’: This is the default order and represents row-major flattening (also known as C-style flattening). The function traverses the array row by row.
• ‘F’: This represents column-major flattening (Fortran-style flattening). The function traverses the array column by column.
• ‘A’: It flattens in column-major order if the array is laid out in Fortran style, otherwise it flattens in row-major.
• ‘K’: It flattens the array as per how its placed in memory.

## Examples of Numpy Flatten Function

### Import Library

In :

`import numpy as np`

### Example 1: Basic Usage of Numpy flatten()

In this example, we have explained the basic usage of the np.flatten() function by flattening a 2D Numpy array into a 1D array.

In :

```arr = np.array([[1, 2, 3],
[4, 5, 6]])

flattened_arr = arr.flatten()
print(flattened_arr)```

Out:

`[1 2 3 4 5 6]`

### Example 2: Flattening 3D Numpy Array

In this example, we are showing how to use numpy.flatten() function to convert 3D Numpy array into 1D array.

In :

```arr = np.array([[[1, 2, 3],
[4, 5, 6]],

[[7, 8, 9],
[10, 11, 12]]])

flattened_arr = arr.flatten()
print(flattened_arr)```

Out:

`[ 1 2 3 4 5 6 7 8 9 10 11 12]`

### Example 3: Using flatten() with order=’C’

In this example, we use np.flatten() on the 2D Numpy array by using the default order=’C’, resulting in a C-ordered flattened array. Here the function traverses the array row-wise like 1,2,3,4… and so on.

In :

```arr = np.array([[1, 2, 3],
[4, 5, 6]])

flattened_c_order = arr.flatten(order='C')
print("C-ordered Flattened Array:", flattened_c_order)```

Out:

`C-ordered Flattened Array: [1 2 3 4 5 6]`

### Example 4: Using flatten() with order=’F’

Compared to the previous example, this time when we use order=’F’ the function traverses the array column by column like 1,4,2,5.. and so on. This is the Fortan-Style flattening.

In :

```arr = np.array([[1, 2, 3],
[4, 5, 6]])

flattened_f_order = arr.flatten(order='F')
print("F-ordered Flattened Array:", flattened_f_order)```

Out:

`F-ordered Flattened Array: [1 4 2 5 3 6]`

### Example 5: Using flatten() with order=’A’

When we use order=’A’, it behaves in two ways depending on whether the input Numpy array is created as row major or column major. We have two sub-examples to show both behaviors –

#### i) Row Major Array

In a row-major array, the elements are indexed in rows like 1,2,3,4… and so on as per the below example. In this case, when order=’A’ is used it traverses the elements row-wise to flatten the array.

In :

```arr = np.array([[1, 2, 3],
[4, 5, 6]])

flattened_arr_c = arr.flatten(order='C')
print("A-ordered Flattened Array:", flattened_arr_a)```

Out:

`A-ordered Flattened Array: [1 2 3 4 5 6]`

#### ii) Column Major Array

In a column-major array, the elements the indexed in a columnar manner like 1,4,2,5… and so on as per the below example. When order=’A’ is used it traverses column-wise to flatten the array.

In :
```arr = np.array([[1, 2, 3],
[4, 5, 6]], order='F')  # Creating a column-major (Fortran-style) array

flattened_arr_a = arr.flatten(order='A')
print("A-ordered Flattened Array:", flattened_arr_a)```
Out:
`A-ordered Flattened Array: [1 4 2 5 3 6]`