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.
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)
|
<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)
|
<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" )
|
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)
|
<class 'numpy.ndarray'> [[2, 3], [5, 6]]