Extract smaller Subarrays using integer Indexing in NumPy
NumPy: Advanced Indexing Exercise-17 with Solution
Extracting Subarrays with Integer Indexing:
Write a NumPy program that creates a 4D NumPy array and uses integer indexing to extract smaller subarrays.
Sample Solution:
Python Code:
import numpy as np
# Create a 4D NumPy array of shape (4, 4, 4, 4) with random integers
array_4d = np.random.randint(0, 100, size=(4, 4, 4, 4))
# Define indices to extract subarrays
depth_indices = np.array([0, 2])
row_indices = np.array([1, 3])
col_indices = np.array([0, 2])
slice_indices = np.array([1, 3])
# Use integer indexing to extract smaller subarrays
subarray = array_4d[depth_indices[:, np.newaxis, np.newaxis, np.newaxis],
row_indices[:, np.newaxis, np.newaxis],
col_indices[:, np.newaxis],
slice_indices]
# Print the original array shape and the extracted subarray
print('Original 4D array shape:', array_4d.shape)
print('Extracted subarray shape:', subarray.shape)
print('Extracted subarray:\n', subarray)
Output:
Original 4D array shape: (4, 4, 4, 4) Extracted subarray shape: (2, 2, 2, 2) Extracted subarray: [[[[38 79] [15 79]] [[22 6] [28 90]]] [[[61 18] [43 69]] [[20 59] [65 89]]]]
Explanation:
- Import Libraries:
- Imported numpy as "np" for array creation and manipulation.
- Create 4D NumPy Array:
- Create a 4D NumPy array named array_4d with random integers ranging from 0 to 99 and a shape of (4, 4, 4, 4).
- Define Indices:
- Defined depth_indices, row_indices, col_indices, and slice_indices to specify the indices for extracting subarrays along each axis.
- Integer Indexing:
- Used integer indexing to extract subarrays from 'array_4d' based on the specified indices for each axis.
- Print Results:
- Print the shape of the original 4D array, the shape of the extracted subarray, and the extracted subarray itself to verify the operation.
Python-Numpy Code Editor:
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics