# numpy.ndarray.flatten() function

The `numpy.ndarray.flatten()` function in the NumPy array library is used to flatten an array of elements in different orders.

The flattening of a NumPy n-dimensional array in python is a procedure to return a copy of an array that is collapsed to a one-dimensional NumPy array.

The flattening of the NumPy array can be done in 4 different orders, those are:

1. C-style or Row-Major style Order: the ordering of consecutive row elements residing next to each other.
2. F-Style (Fortran Style) or Column-Major Order: the ordering of consecutive column elements residing next to each other.
3. A-style: The ordering can be two types here.
• 1) column-major order if the NumPy array is Fortran Contiguous
• 2)Row-Major order if the NumPy array is Fortran Non-Contiguous.
4. K-Style Order: flatten in the order that elements occur in memory.

The `numpy.ndarray.flatten()` method will return a copy of the original array. Since the n-dimensional output array is a copy of the original NumPy array, changing the output array will not affect the value of the original NumPy array.

## Syntax

The syntax of `numpy.ndarray.flatten()` method is:

``````ndarray.flatten(order='C')
``````

## Parameters

The `numpy.ndarray.flatten()` method takes a single optional argument.

• order: {‘C’, ’F’, ‘A’, ’K’}: (Optional)– the type of order of flattening which can be any of the values as follows {‘C’, ’F’, ’A’, ’K’}. If no value is provided it takes the default value ‘C’ which is row-major style order.

## Return Value

The method `ndarray.flatten()` returns a copy of a 1-dimensional array with the same type of elements.

## Example 1: How to flatten an array using NumPy ndarray.flatten() method

The method `ndarray.flatten()` flattens the input array into a single-dimensional array. If the `order` argument is not provided or if the `order` value is passed as `None`, then the array returns would be default row-major ordering style also called C-Style ordering.

``````import numpy as np

# initialize the numpy n-D array
arr_in = np.array([[[2, 17], [45, 78]], [[88, 92], [60, 76]], [[76, 33], [20, 18]]])
print("The input array is:\n", arr_in)

print("The flattened numpy array in default order(C-style order) is:")

# flatten function will flatten input array to default ordering(C-)
print(arr_in.flatten())
``````

Output

``````The input array is:
[[[ 2 17]
[45 78]]

[[88 92]
[60 76]]

[[76 33]
[20 18]]]

The flattened numpy array in default order(C-style order) is:
[ 2 17 45 78 88 92 60 76 76 33 20 18]``````

## Example 2: Flattening an array using numpy.flatten() method with C-style ordering

If we pass `order='C'` as an argument for the method `ndarray.flatten()`, the method flattens the input array into a single-dimensional array and returns the array in row-major order style.

``````import numpy as np

# initialize the numpy n-D array
arr_in = np.array([[[2, 17], [45, 78]], [[88, 92], [60, 76]], [[76, 33], [20, 18]]])
print("The input array is:\n", arr_in)

print(
"The flattened numpy array in Row major order(C-style order) using order = 'C' is:"
)

# flatten row major ordering using order = 'C'
print(arr_in.flatten(order="C"))
``````

Output

``````The input array is:
[[[ 2 17]
[45 78]]

[[88 92]
[60 76]]

[[76 33]
[20 18]]]

The flattened numpy array in Row major order(C-style order) using order = 'C' is:
[ 2 17 45 78 88 92 60 76 76 33 20 18]``````

## Example 3: Flattening an array using numpy.flatten() method with Fortran-style ordering

If we pass `order='F'` as an argument for the method `ndarray.flatten()`, the method flattens the input array into a single-dimensional array and returns the array in column-major order style also called as F-Style (Fortan Style).

``````import numpy as np

# initialize the numpy n-D array
arr_in = np.array([[[2, 17], [45, 78]], [[88, 92], [60, 76]], [[76, 33], [20, 18]]])
print("The input array is:\n", arr_in)

print(
"The flattened numpy array using fortran order(Column major order) using order = 'F' is:"
)

# flatten fortran ordering using order = 'F'
print(arr_in.flatten(order="F"))
``````

Output

``````The input array is:
[[[ 2 17]
[45 78]]

[[88 92]
[60 76]]

[[76 33]
[20 18]]]

The flattened numpy array using fortran order(Column major order) using order = 'F' is:
[ 2 88 76 45 60 20 17 92 33 78 76 18]``````

## Example 4: Flattening an array using numpy.flatten() method with A-style ordering

If we pass `order='A'` as an argument for the method `ndarray.flatten()`, the method flattens the input array into a single-dimensional array and returns the array in Fortran contiguous ordering in memory.

``````import numpy as np

# initialize the numpy n-D array
arr_in = np.array([[[2, 17], [45, 78]], [[88, 92], [60, 76]], [[76, 33], [20, 18]]])
print("The input array is:\n", arr_in)

print(
"The flattened numpy array in column-major order if array is Fortran contiguous in memory using order = 'A'is:"
)

# flattening numpy array in column-major order if array is Fortran contiguous in memory
print(arr_in.flatten(order="A"))
``````

Output

``````The input array is:
[[[ 2 17]
[45 78]]

[[88 92]
[60 76]]

[[76 33]
[20 18]]]

The flattened numpy array in column-major order if array is Fortran contiguous in memory using order = 'A'is:
[ 2 17 45 78 88 92 60 76 76 33 20 18]``````

## Example 5: Flattening an array using numpy.flatten() method with K-style ordering

If we pass `order='K'` as an argument for the method `ndarray.flatten()`, the method flattens the input array into a single-dimensional array and returns the 1-D array as elements occur in memory either in contiguous or non-contiguous.

``````import numpy as np

# initialize the numpy n-D array
arr_in = np.array([[[2, 17], [45, 78]], [[88, 92], [60, 76]], [[76, 33], [20, 18]]])
print("The input array is:\n", arr_in)

print("The array is flattened to order of elements occurs in memory is:")

# flattened to order of elements occurs in memory
print(arr_in.flatten(order="K"))
``````

Output

``````The input array is:
[[[ 2 17]
[45 78]]

[[88 92]
[60 76]]

[[76 33]
[20 18]]]

The array is flattened to order of elements occurs in memory is:
[ 2 17 45 78 88 92 60 76 76 33 20 18]
``````

## Conclusion

The flattening of a NumPy n-dimensional array in python is a procedure to return an array that is collapsed to a one-dimensional NumPy array. We use the `numpy.ndarray.flatten()` function to flatten an array of elements in different orders.

Reference: NumPy Library

Subscribe to get notified of the latest articles. We will never spam you. Be a part of our ever-growing community.

## Python Dictionary get()

Table of Contents Hide get() Syntaxget() Parametersget() Return ValueExample 1 – How to use the get() method in DictionaryExample 2 – Difference between get() method and dict[key] to access elements Python…

## Python String isprintable()

Table of Contents Hide What are printable characters in Python?SyntaxParametersReturn ValueExample 1: Working of isprintable() method Example 2: How to use isprintable() in the actual program The Python String isprintable()…

## Python Remove Newline From String

Table of Contents Hide Python Remove Newline From StringUsing strip() method to remove the newline character from a stringUsing replace() method to remove newlines from a stringUsing regex to remove…

## TypeError: only integer scalar arrays can be converted to a scalar index

Python numpy throws typeerror: only integer scalar arrays can be converted to a scalar index when you try to convert the ordinary array into a scalar index. The other cause…

## How to get file extension in Python?

In Python, we can extract the file extension using two approaches. Let’s take a look at each of these with examples. Python get file extension using os module splitext() function…

## Python typeerror: ‘str’ object is not callable Solution

Table of Contents Hide What is typeerror: ‘str’ object is not callable in Python?Scenario 1 – Declaring a variable name called “str”Solving typeerror: ‘str’ object is not callable in Python.Scenario…