In this article we will discuss different ways to reverse the contents of 1D and 2D numpy array ( columns & rows ) using np.flip() and [] operator.
Reverse 1D Numpy array using [] operator trick
First of all import numpy module i.e.
import numpy as np
Now suppose we have a numpy array i.e.
# Create a Numpy array from list of numbers arr = np.array([6, 1, 4, 2, 18, 9, 3, 4, 2, 8, 11])
Now let’s reverse the contents of the above created numpy array using a small trick,
Frequently Asked:
# Get a reversed view of numpy array reversedArr = arr[::-1] print('Reversed Array : ', reversedArr)
Output:
Reversed Array : [11 8 2 4 3 9 18 2 4 1 6]
How did it worked ?
In numpy array we use the [] operator with following syntax,
arr[start:end:stepsize]
It will basically select the elements from start to end with step size as stepsize. We did not provided start and end parameter, therefore by default it picked the complete array. Also, the step size was -1, therefore it selected the elements from last to first.
Latest Python - Video Tutorial
Reverse Array is View Only
reversedArr is just a reversed view of the arr. It means any modification in this view reversedArr will also be reflected in the original array arr i.e.
# Modification in reversed array will be reflected in original array too reversedArr[1] = 100 print('Modified Reversed Array : ', reversedArr) print('Original Array : ', arr)
Output:
Modified Reversed Array : [ 11 100 2 4 3 9 18 2 4 1 6] Original Array : [ 6 1 4 2 18 9 3 4 2 100 11]
Reverse Numpy array using np.flip()
Python’s Numpy module provides a function to flip the contents of numpy array along different axis i.e.
numpy.flip(arr, axis=None)
Arguments:
- arr : Numpy array
- axis : Axis along which it needs to flip / reverse the contents.
- If None: flip / reverse contents along all of the axes of the input array
Let’s understand by examples,
Reverse 1D Numpy array using np.flip()
Suppose we have a numpy array i.e.
# Create a Numpy array from list of numbers arr = np.array([6, 1, 4, 2, 18, 9, 3, 4, 2, 8, 11])
Now let’s reverse the contents of the above created numpy array using a np.flip(),
# Reverse the contents of 1D numpy Array reversedArr = np.flip(arr) print('Reversed Array : ', reversedArr)
Output:
Reversed Array : [11 8 2 4 3 9 18 2 4 1 6]
As it was 1D numpy array, so we don’t need to provide axis parameter.
Reverse 2D Numpy Array using np.flip()
Let’s create a 2D Numpy array i.e.
# Create a 2D Numpy array list of list arr2D = np.array([[11, 12, 13, 11], [21, 22, 23, 24], [31, 32, 33, 34]]) print(arr2D)
Contents of the 2D numpy array are,
[[11 12 13 11] [21 22 23 24] [31 32 33 34]]
Reverse contents in all rows and all columns of 2D Numpy Array
If we don’t provide any axis parameter in np.flip() then fit will reverse contents along all of the axes of the 2D array i.e.
# Reverse contents of each row and column in the Numpy Array reversedArr = np.flip(arr2D) print('Reversed Array : ') print(reversedArr)
Output:
Reversed Array : [[34 33 32 31] [24 23 22 21] [11 13 12 11]]
It flipped contents in all rows and all columns of 2D Numpy Array
Reverse contents of all rows only in 2D Numpy Array
# Reverse contents of each column in the Numpy Array reversedArr = np.flip(arr2D, axis=0) print('Reversed Array : ') print(reversedArr)
Output:
Reversed Array : [[31 32 33 34] [21 22 23 24] [11 12 13 11]]
Reverse contents of all columns only in 2D Numpy Array
# Reverse contents of each row in the Numpy Array reversedArr = np.flip(arr2D, axis=1) print('Reversed Array : ') print(reversedArr)
Output:
Reversed Array : [[11 13 12 11] [24 23 22 21] [34 33 32 31]]
Reverse contents of only one column in 2D Numpy Array
# Reverse contents of 2nd column i.e. column at index position 1 in 2D Numpy Array arr2D[:,1] = np.flip(arr2D[:,1]) print('Reversed Array : ') print(arr2D)
Output:
Reversed Array : [[11 32 13 11] [24 23 22 21] [31 12 33 34]]
It flipped the contents of 2nd column only in numpy array.
Reverse contents of only one row in 2D Numpy Array
# Reverse contents of 2nd row i.e. row at index position 1 in 2D Numpy Array arr2D[1] = np.flip(arr2D[1]) print('Reversed Array : ') print(arr2D)
Output:
Reversed Array : [[11 12 13 11] [24 23 22 21] [31 32 33 34]]
It flipped the contents of 2nd row only in numpy array.
Complete example is as follows :
import numpy as np def main(): print('**** Reverse a Numpy array using operator [] ****') # Create a Numpy array from list of numbers arr = np.array([6, 1, 4, 2, 18, 9, 3, 4, 2, 8, 11]) print('Original Array : ', arr) print('*** Reverse a Numpy Array ***') # Get a reversed view of numpy array reversedArr = arr[::-1] print('Reversed Array : ', reversedArr) # Modification in reversed array will be reflected in original array too reversedArr[1] = 100 print('Modified Reversed Array : ', reversedArr) print('Original Array : ', arr) print('**** Reverse a Numpy array using np.flip() ****') # Create a Numpy array from list of numbers arr = np.array([6, 1, 4, 2, 18, 9, 3, 4, 2, 8, 11]) print('Original Array : ', arr) # Reverse the contents of 1D numpy Array reversedArr = np.flip(arr) print('Reversed Array : ', reversedArr) print('***** Reverse a 2D Numpy Array *****') # Create a 2D Numpy array list of list arr2D = np.array([[11, 12, 13, 11], [21, 22, 23, 24], [31, 32, 33, 34]]) print('2D Numpy Array') print(arr2D) print('** Reverse all rows and all columns of the Numpy Array **') # Reverse contents of each row and column in the Numpy Array reversedArr = np.flip(arr2D) print('Reversed Array : ') print(reversedArr) print('** Reverse all columns only in Numpy Array **') # Reverse contents of each column in the Numpy Array reversedArr = np.flip(arr2D, axis=0) print('Reversed Array : ') print(reversedArr) print('** Reverse all rows only in Numpy Array **') # Reverse contents of each row in the Numpy Array reversedArr = np.flip(arr2D, axis=1) print('Reversed Array : ') print(reversedArr) print('** Reverse contents of 2nd rows in Numpy Array **') # Reverse contents of 2nd row i.e. row at index position 1 in 2D Numpy Array arr2D[1] = np.flip(arr2D[1]) print('Reversed Array : ') print(arr2D) print('Reverse contents of 2nd column in Numpy Array') # Reverse contents of 2nd column i.e. column at index position 1 in 2D Numpy Array arr2D[:,1] = np.flip(arr2D[:,1]) print('Reversed Array : ') print(arr2D) if __name__ == '__main__': main()
Output:
**** Reverse a Numpy array using operator [] **** Original Array : [ 6 1 4 2 18 9 3 4 2 8 11] *** Reverse a Numpy Array *** Reversed Array : [11 8 2 4 3 9 18 2 4 1 6] Modified Reversed Array : [ 11 100 2 4 3 9 18 2 4 1 6] Original Array : [ 6 1 4 2 18 9 3 4 2 100 11] **** Reverse a Numpy array using np.flip() **** Original Array : [ 6 1 4 2 18 9 3 4 2 8 11] Reversed Array : [11 8 2 4 3 9 18 2 4 1 6] ***** Reverse a 2D Numpy Array ***** 2D Numpy Array [[11 12 13 11] [21 22 23 24] [31 32 33 34]] ** Reverse all rows and all columns of the Numpy Array ** Reversed Array : [[34 33 32 31] [24 23 22 21] [11 13 12 11]] ** Reverse all columns only in Numpy Array ** Reversed Array : [[31 32 33 34] [21 22 23 24] [11 12 13 11]] ** Reverse all rows only in Numpy Array ** Reversed Array : [[11 13 12 11] [24 23 22 21] [34 33 32 31]] ** Reverse contents of 2nd rows in Numpy Array ** Reversed Array : [[11 12 13 11] [24 23 22 21] [31 32 33 34]] Reverse contents of 2nd column in Numpy Array Reversed Array : [[11 32 13 11] [24 23 22 21] [31 12 33 34]]
Latest Video Tutorials