Slice a 2D Array in Python
Last Updated :
11 Mar, 2024
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
matrix = np.array([
[ 1 , 2 , 3 ],
[ 4 , 5 , 6 ],
[ 7 , 8 , 9 ]
])
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
matrix = np.array([
[ 1 , 2 , 3 ],
[ 4 , 5 , 6 ],
[ 7 , 8 , 9 ]
])
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
matrix = np.array([
[ 1 , 2 , 3 ],
[ 4 , 5 , 6 ],
[ 7 , 8 , 9 ]
])
slices = np.split(matrix, [ 1 , 2 ])
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
matrix = np.array([
[ 1 , 2 , 3 ],
[ 4 , 5 , 6 ],
[ 7 , 8 , 9 ]
])
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]]
Share your thoughts in the comments
Please Login to comment...