Python Program to get the subarray from an array using a specified range of indices

An array is a homogeneous data structure, which is used to store a set of elements of the same data type. And each element in the array is identified by key or index value.

Subarray

A subarray is defined as a small part of continuous elements of an array. if we take an array of 5 integer elements like below.

[9, 3, 1, 6, 9]


Then the subarrays will be −

[9, 3]
[9, 3, 1]
[3, 1, 6, 9]


Arrays in Python

In Python we don't have a specific data structure to represent arrays. However, we can use Lists to represent arrays.

 [1, 2, 3, 4, 5]


Also we can use array or NumPy modules to work with arrays in python.

An array defined by the array module.

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


A Numpy array defined by the NumPy module.

array([1, 2, 3, 4])


The above all arrays are indexed from starting 0 to (n-1).

In this article, we see multiple ways to get the subarray from an array using a specified range of indices

Input Output Scenarios

Assume we have an input array with 9 integer values. And in output will be the subarray from index 1 to 4.

Input array:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Output:
[2, 3, 4]


Mainly we will use python slicing feature to get the subarray from an array. A slicing used to select a range of items of an iterable.

Syntax

iterable_obj[start:stop:step]


Using List Slicing

We can use list slicing to get the subarray. Following is the syntax to do so −

list_object[start : end : step]


Where,

• Start  The starting index where slicing of the list starts. The default value is 0.

• End  The ending index where slicing of the list stops. Note that the value of this index is not a part of the end result. The default value is the length of the iterable object.

• Step  By default, it is 1. The number to increment the starting index.

Example

From the following example, we can see an array and two indices arr[1:7] are given to pick subarrays from those locations.

# creating array
arr = [2, 5, 6, 7, 1, 9, 2, 0]
print ("The original array is: ", arr)
print()
# get the subarray
result = arr[1:7]
print ("The subarray is: ", result)


Output

The original array is:  [2, 5, 6, 7, 1, 9, 2, 0]
The subarray is:  [5, 6, 7, 1, 9, 2]


Using a NumPy Array

In Numpy array slicing allows us to specify a range of indexes to get the subarray from a bigger array. The NumPy array elements are also indexed like a python list. The index of the first element will be 0 and the last element will be indexed n-1.

Syntax

numpyArray[start : end]


Where,

• Start  The starting index where slicing of the array starts.

• End  The ending index where slicing of the array stops.

Example

Following is another example –

import numpy as np
# creating array
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print ("The original array is: ", arr)
print()
# get the subarray
result = arr[1:4]
print ("The subarray is: ", result)


Output

The original array is:  [1, 2, 3, 4, 5, 6, 7, 8, 9]
The subarray is:  [2, 3, 4]


We successfully got a subarray starting from the 1st index up to the 4th index (excluding the last the 4th index) was selected.

Use the Array Module

The python array module also supports array slicing, so that we can easily get the subarray from a big array. Following is the syntax –

Syntax

array[start : end]


Where,

• Start  The starting index where slicing of the array starts.

• End  The ending index where the slicing of the array stops.

Example

In the following example, we have successfully got the subarray from index 1- 8 using the python array module and its slicing technique.

import array
# creating array
arr = array.array('i',[1, 2, 3, 4, 5, 6, 7, 8, 9])
print ("The original array is: ", arr)
print()

# get the subarray
result = arr[1:8]
print ("The subarray is: ", result)


Output

The original array is:  array('i', [1, 2, 3, 4, 5, 6, 7, 8, 9])

The subarray is:  array('i', [2, 3, 4, 5, 6, 7, 8])


Updated on: 29-May-2023

2K+ Views