Open In App

Slice a 2D Array in Python

Last Updated : 11 Mar, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

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
  • Using List Comprehension
  • Using np.split() Method
  • Using Itertools Module

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.

Python3




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.

Python3




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.

Python3




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.

Python3




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]]


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads