Table of contents
1.
Introduction
2.
1. Using List Slicing to Reverse an Array in Python
3.
2. Using reverse() Method
4.
3. Using reversed() Function
5.
4. Using a Loop
6.
Reversing an Array of Array Module in Python
6.1.
1. Using reverse() Method
6.2.
2. Using reversed() Function
7.
Reversing a NumPy Array in Python
7.1.
1. Using flip() Method
7.2.
2. Using flipud() Method
7.3.
3. Using Simple Slicing
8.
Frequently Asked Questions
8.1.
Can I reverse an array in-place using list slicing?
8.2.
Is it more efficient to use the reverse() method or the reversed() function?
8.3.
Can I reverse a multi-dimensional NumPy array using the flip() method?
9.
Conclusion
Last Updated: Aug 25, 2025
Easy

Reverse Array in Python

Introduction

Arrays in Python are a fundamental data structure that allows you to store & manipulate collections of elements. Sometimes, you may need to reverse the order of elements in an array. Reversing an array means rearranging its elements so that the last element becomes the first, the second-to-last becomes the second, & so on. This operation could be very useful in situations like when you want to process elements in the opposite order or when you need to perform certain algorithms that require reversed arrays. 

In this article, we will learn different methods to reverse an array in Python, which consists of different built-in functions, slicing techniques, & loops. 

1. Using List Slicing to Reverse an Array in Python

Python provides a powerful feature called list slicing, which allows you to extract portions of a list or array. By using slicing with a step of -1, you can reverse the order of elements in an array. Here's how you can use list slicing to reverse an array:

my_array = [1, 2, 3, 4, 5]
reversed_array = my_array[::-1]
print(reversed_array)
You can also try this code with Online Python Compiler
Run Code


Output:

[5, 4, 3, 2, 1]


In this example, `my_array` is the original array containing the elements `[1, 2, 3, 4, 5]`. By using the slicing syntax `my_array[::-1]`, we create a new array `reversed_array` that contains the elements of `my_array` in reverse order.
 

The slicing syntax `[::-1]` means:

  • Start from the end of the array (empty before the first colon)
     
  • Go until the beginning of the array (empty after the second colon)
     
  • Use a step of -1 to move backwards
     

Note: List slicing creates a new array without modifying the original one. It is a concise & efficient way to reverse an array in Python.

2. Using reverse() Method

Python provides a built-in method called `reverse()` that allows you to reverse the order of elements in an array in place, meaning it modifies the original array. Here's how you can use the `reverse()` method to reverse an array:

my_array = [1, 2, 3, 4, 5]
my_array.reverse()
print(my_array)
You can also try this code with Online Python Compiler
Run Code


Output

[5, 4, 3, 2, 1]


In this example, `my_array` is the original array containing the elements `[1, 2, 3, 4, 5]`. By calling the `reverse()` method on `my_array`, the order of its elements is reversed in-place.


The `reverse()` method modifies the original array directly, so you don't need to assign the result to a new variable. After calling `reverse()`, the original array `my_array` will contain the elements in reverse order.


It's important to note that the `reverse()` method does not return a new array; it modifies the existing array. If you need to keep the original array unchanged & create a new reversed array, you can use list slicing or the `reversed()` function (discussed in the next section).

3. Using reversed() Function

Python provides a built-in function called `reversed()` that returns an iterator object, which allows you to iterate over the elements of an array in reverse order. Here's how you can use the `reversed()` function to reverse an array:

my_array = [1, 2, 3, 4, 5]
reversed_array = list(reversed(my_array))
print(reversed_array)
You can also try this code with Online Python Compiler
Run Code


Output:

[5, 4, 3, 2, 1]


In this example, `my_array` is the original array containing the elements `[1, 2, 3, 4, 5]`. By passing `my_array` to the `reversed()` function, we get an iterator object that yields the elements of `my_array` in reverse order.


To convert the iterator object back to a list, we use the `list()` constructor. This creates a new list, `reversed_array,` which contains the elements of `my_array` in reverse order.


The `reversed()` function does not modify the original array; it returns an iterator that allows you to access the elements in reverse order. If you need to create a new array with the reversed elements, you can convert the iterator to a list using the `list()` constructor, as shown in the example.


One advantage of using the `reversed()` function is that it is memory-efficient. It doesn't create a new array in memory; instead, it generates the elements on the fly as you iterate over them. This can be useful when working with large arrays or when memory is a concern.


Note: The `reversed()` function provides a flexible way to iterate over an array in reverse order & create a new reversed array if needed.

4. Using a Loop

Another way to reverse an array in Python is by using a loop to reverse the order of elements manually. Let’s see an example of how you can use a loop to reverse an array:

my_array = [1, 2, 3, 4, 5]
reversed_array = []
for i in range(len(my_array) - 1, -1, -1):
    reversed_array.append(my_array[i])
print(reversed_array)
You can also try this code with Online Python Compiler
Run Code


Output:

[5, 4, 3, 2, 1]


In this example, `my_array` is the original array containing the elements `[1, 2, 3, 4, 5]`. We create an empty array called `reversed_array` to store the reversed elements.

We then use a `for` loop to iterate over the indices of `my_array` in reverse order. The `range(len(my_array) - 1, -1, -1)` function generates a sequence of indices starting from the last index of `my_array` (length - 1) & going backward until the first index (0). The third argument `-1` specifies the step value, which makes the loop move in the reverse direction.

Inside the loop, we append each element from `my_array` to `reversed_array` using the `append()` method. By accessing the elements using the reverse indices, we effectively reverse the order of elements.

After the loop finishes, `reversed_array` will contain the elements of `my_array` in reverse order.

Note: Using a loop to reverse an array provides more control and flexibility over the reversal process. It allows you to perform additional operations or modifications to the elements while reversing the array. However, it may be less concise than using built-in methods or slicing.

Reversing an Array of Array Module in Python

Python's `array` module provides a way to create & manipulate arrays of numeric values. The `array` module offers its own methods for reversing arrays. 

Let's discuss two commonly used methods:

1. Using reverse() Method

The `reverse()` method of the `array` module allows you to reverse the order of elements in an array in place. 

For example:

from array import array

my_array = array('i', [1, 2, 3, 4, 5])
my_array.reverse()
print(my_array)
You can also try this code with Online Python Compiler
Run Code


Output:

array('i', [5, 4, 3, 2, 1])


In this example, we create an array `my_array` using the `array()` function from the `array` module. The first argument `'i'` specifies the type code for signed integers. We initialize the array with the elements `[1, 2, 3, 4, 5]`.


By calling the `reverse()` method on `my_array,` the order of its elements is reversed in place. The original array is modified, and the reversed array is printed.

2. Using reversed() Function

Like lists, you can use the `reversed()` function to reverse an array from the `array` module. 


For example:

from array import array

my_array = array('i', [1, 2, 3, 4, 5])
reversed_array = array(my_array.typecode, reversed(my_array))
print(reversed_array)
You can also try this code with Online Python Compiler
Run Code


Output:

array('i', [5, 4, 3, 2, 1])


In this example, we create an array `my_array` using the `array()` function, specifying the type code `'i'` for signed integers & initializing it with the elements `[1, 2, 3, 4, 5]`.

We then use the `reversed()` function to obtain an iterator that yields the elements of `my_array` in reverse order. To create a new array with the reversed elements, we pass the iterator to the `array()` function along with the type code of the original array (`my_array.typecode`).

The resulting `reversed_array` contains the elements of `my_array` in reverse order.

Reversing a NumPy Array in Python

NumPy is a powerful library for Python numerical computing. It provides a convenient way to work with arrays & offers several methods for reversing NumPy arrays. 

Let's discuss a few commonly used methods:

1. Using flip() Method

The `flip()` method allows you to reverse the order of elements along a specified axis of a NumPy array. 

For example:

import numpy as np
my_array = np.array([1, 2, 3, 4, 5])
reversed_array = np.flip(my_array)
print(reversed_array)
You can also try this code with Online Python Compiler
Run Code


Output:

[5 4 3 2 1]


In this example, we create a NumPy array `my_array` using the `np.array()` function & initialize it with the elements `[1, 2, 3, 4, 5]`.

By calling the `np.flip()` function & passing `my_array` as an argument, we obtain a new array `reversed_array` with the elements of `my_array` in reverse order.

The `flip()` method can also reverse the order of elements along specific axes in multidimensional arrays by specifying the `axis` parameter.

2. Using flipud() Method

The `flipud()` method is used to flip a NumPy array vertically (up-down). It reverses the order of elements along the first axis (rows) of the array. Here's an example:

For example:

import numpy as np
my_array = np.array([[1, 2, 3], [4, 5, 6]])
reversed_array = np.flipud(my_array)
print(reversed_array)
You can also try this code with Online Python Compiler
Run Code


Output:

[[4 5 6]
[1 2 3]]


In this example, we create a 2D NumPy array `my_array` with two rows & three columns.

By calling the `np.flipud()` function & passing `my_array` as an argument, we obtain a new array `reversed_array` with the rows of `my_array` flipped vertically. The order of elements within each row remains unchanged.

3. Using Simple Slicing

Similar to list slicing, you can use slicing with a step of -1 to reverse a NumPy array. 

For example:

import numpy as np

my_array = np.array([1, 2, 3, 4, 5])
reversed_array = my_array[::-1]
print(reversed_array)
You can also try this code with Online Python Compiler
Run Code


Output

[5 4 3 2 1]


In this example, we create a NumPy array `my_array` using the `np.array()` function & initialize it with the elements `[1, 2, 3, 4, 5]`.


By using the slicing syntax `my_array[::-1]`, we create a new array `reversed_array` that contains the elements of `my_array` in reverse order.


Slicing with a step of -1 can also be used to reverse multi-dimensional arrays along specific axes by specifying the appropriate slicing parameters.

Frequently Asked Questions

Can I reverse an array in-place using list slicing?

No, list slicing creates a new array & does not modify the original array in-place.

Is it more efficient to use the reverse() method or the reversed() function?

The reverse() method is generally more efficient as it reverses the array in-place without creating a new array.

Can I reverse a multi-dimensional NumPy array using the flip() method?

Yes, you can specify the axis parameter in the flip() method to reverse the array along specific dimensions.

Conclusion

In this article, we discussed different methods to reverse an array in Python. We learned how to use list slicing, the reverse() method, the reversed() function, & loops to reverse arrays. We also explained different techniques for reversing arrays using the array module & NumPy library. With the help of these different approaches, you can effectively reverse arrays in Python based on your specific needs & the characteristics of your data. 

Recommended Readings:

Live masterclass