Open In App

Slice a 2D Array in Python

We are given a 2D array matrix and we have to Slice this matrix 2D array and return the result. In this article, we will see how we can Slice the 2D array in Python.

Example



Input : matrix = [
                [1, 2, 3],
                [4, 5, 6],
                [7, 8, 9] ]
Output : [[ 4, 5, 6]]
Explanation : We can see that 2D array (matrix) is sliced using Slicing in Python.

2D Array Slicing in Python

Below are some of the ways by which we can slice a 2D array in Python:

Basic Slicing

In this example, matrix[0:2] selects the first and second rows, and [1:3] extracts the second and third columns. The result is a sliced 2D array containing the elements from rows 1 to 2 and columns 2 to 3.






import numpy as np
 
# Example 2D array
matrix = np.array([
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
])
# Basic slicing
result = matrix[0:2][1:3]
print(type(matrix))
print(result)

Output
<class 'numpy.ndarray'>
[[4 5 6]]

Slice a 2D Array in Python Using List Comprehension

In this method, a list comprehension is used to iterate over the desired rows (0 to 1) and extract the desired columns (1 to 2). The result is a list containing the sliced rows.




import numpy as np
 
# Example 2D array
matrix = np.array([
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
])
 
# List comprehension for slicing
result = [row[1:3] for row in matrix[0:2]]
print(type(matrix))
print(result)

Output
<class 'numpy.ndarray'>
[array([2, 3]), array([5, 6])]

Slice a 2D Array in Python Using np.split() Method

In this example, np.split() is used with the axis=1 parameter to split the 2D array along the columns. The second argument [1, 2] specifies the indices at which the array should be split. The resulting slices are stored in the slices variable.




import numpy as np
 
# Example 2D array
matrix = np.array([
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
])
 
# Splitting the array along the horizontal axis (axis=1)
slices = np.split(matrix, [1, 2])
 
# Displaying the slices
for i, slice_arr in enumerate(slices):
    print(f"Slice {i + 1}:\n{slice_arr}\n")

Output
Slice 1:
[[1 2 3]]

Slice 2:
[[4 5 6]]

Slice 3:
[[7 8 9]]

Slice a 2D Array in Python Using Itertools Module

In this example, islice is used to iterate over the rows (0 to 1) and then apply another islice to extract the columns (1 to 2). The result is a list containing the sliced rows.




from itertools import islice
import numpy as np
 
# Example 2D array
matrix = np.array([
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
])
 
# Itertools islice
result = [list(islice(row, 1, 3)) for row in islice(matrix, 0, 2)]
print(type(matrix))
print(result)

Output
<class 'numpy.ndarray'>
[[2, 3], [5, 6]]

Article Tags :