w3resource

Select Rectangular Subarray using advanced slicing in NumPy

NumPy: Advanced Indexing Exercise-14 with Solution

Advanced Slicing with Index Arrays:

Write a NumPy program that creates a 2D NumPy array and uses slicing in combination with index arrays to select a rectangular subarray.

Sample Solution:

Python Code:

import numpy as np

# Create a 2D NumPy array of shape (6, 6) with random integers
array_2d = np.random.randint(0, 100, size=(6, 6))

# Define the row and column indices to slice the array
row_indices = np.arange(2, 5)  # rows from index 2 to 4 (inclusive)
col_indices = np.arange(1, 4)  # columns from index 1 to 3 (inclusive)

# Use slicing in combination with index arrays to select a subarray
subarray = array_2d[row_indices[:, np.newaxis], col_indices]

# Print the original array and the selected subarray
print('Original 2D array:\n', array_2d)
print('Row indices:', row_indices)
print('Column indices:', col_indices)
print('Selected subarray:\n', subarray)

Output:

Original 2D array:
 [[85 43  7 40 45 20]
 [82 81 36 16 71 33]
 [82 70 86 55 10  0]
 [36 74 18 82 84 12]
 [91  3 67 18 60 19]
 [ 0 54 73 10 27  7]]
Row indices: [2 3 4]
Column indices: [1 2 3]
Selected subarray:
 [[70 86 55]
 [74 18 82]
 [ 3 67 18]]

Explanation:

  • Import Libraries:
    • Imported numpy as "np" for array creation and manipulation.
  • Create 2D NumPy Array:
    • Create a 2D NumPy array named array_2d with random integers ranging from 0 to 99 and a shape of (6, 6).
  • Define Row and Column Indices:
    • Define row_indices to specify rows from index 2 to 4 (inclusive).
    • Define col_indices to specify columns from index 1 to 3 (inclusive).
  • Slicing with Index Arrays:
    • Used slicing in combination with index arrays to select a rectangular subarray from 'array_2d'.
  • Print Results:
    • Print the original 2D array, the row and column indices, and the selected subarray to verify the slicing operation.

Python-Numpy Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Select elements using Boolean Indexing with logical operators.
Next: Set elements in 3D NumPy array using Boolean Indexing.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://w3resource.com/python-exercises/numpy/select-rectangular-subarray-using-advanced-slicing-in-numpy.php