Boolean Indexing on higher dimensions in NumPy arrays
NumPy: Advanced Indexing Exercise-19 with Solution
Boolean Indexing on Higher Dimensions:
Write a NumPy program that creates a 5D NumPy array. Use boolean indexing to select elements along specific dimensions based on conditions applied to other dimensions.
Sample Solution:
Python Code:
import numpy as np
# Create a 5D NumPy array of shape (3, 4, 2, 3, 5) with random integers
array_5d = np.random.randint(0, 100, size=(3, 4, 2, 3, 5))
# Define a condition on the entire 5D array
# For example, select elements where the values are greater than 50
condition = array_5d > 50
# Use boolean indexing to select elements along specific dimensions based on the condition
selected_elements = array_5d[condition]
# Print the shape of the original array, the condition array, and the selected elements
print('Original 5D array shape:', array_5d.shape)
print('Condition (elements > 50):\n', condition)
print('Selected elements based on condition:\n', selected_elements)
print('Shape of selected elements:', selected_elements.shape)
Output:
Original 5D array shape: (3, 4, 2, 3, 5) Condition (elements > 50): [[[[[False True False False False] [ True True False True False] [False True False True True]] [[ True True True False True] [False False True True False] [ True False False False True]]] [[[ True False False False True] [ True True False False True] [False True False False False]] [[False False False True True] [ True True True True True] [ True True True False False]]] [[[False False False True False] [ True True False False False] [ True False False False True]] [[False False True True True] [ True False False True True] [False True True False False]]] [[[ True False True True True] [ True False False True False] [ True False False False True]] [[False False True False True] [ True False True True False] [False False True False False]]]] [[[[ True True True False False] [ True True True True True] [ True True True False False]] [[False True False False False] [ True False False True True] [ True False True True False]]] [[[False True False True True] [False False True False True] [False False False False False]] [[False True True True False] [False False False False True] [False True False True True]]] [[[ True False False True True] [ True True False False False] [ True False False True False]] [[ True False True False False] [ True False True True True] [False False False False False]]] [[[False True False True True] [ True False False False False] [False True True True True]] [[False False True True False] [ True True True True True] [False False False True True]]]] [[[[False True False True True] [False False False False False] [False True False True False]] [[ True False False False False] [False False False False True] [False False False True True]]] [[[ True False False True True] [ True True True False True] [ True True False False True]] [[False False True True True] [False False True False False] [False True True False True]]] [[[ True False True True True] [ True False False False False] [False False True False False]] [[False True True True True] [False True False False True] [False False True True True]]] [[[False False False False False] [ True True True False True] [ True False False True False]] [[ True True True True True] [ True False False True True] [False True True False False]]]]] Selected elements based on condition: [99 71 55 88 81 74 69 58 71 51 97 73 69 77 62 68 53 72 67 99 91 51 61 53 68 67 58 51 83 96 78 72 98 60 58 73 67 90 63 52 67 90 64 98 97 73 58 84 68 55 84 73 66 55 62 78 84 62 53 76 73 95 96 63 79 84 59 64 74 82 71 96 57 87 57 98 54 80 93 76 66 55 79 80 58 72 91 59 89 81 55 60 94 87 53 69 52 53 95 99 94 99 74 58 92 81 99 56 70 72 51 54 51 76 51 82 96 77 55 88 77 94 78 79 99 93 85 87 80 66 85 54 71 97 71 86 96 72 67 87 97 93 83 74 69 92 96 68 92 98 72 94 56 99 93 68 56 97 95 98 73 88 71 52 74 78 99 76 71 90 53 54 90 82 67] Shape of selected elements: (175,)
Explanation:
- Import Libraries:
- Imported numpy as "np" for array creation and manipulation.
- Create 5D NumPy Array:
- Create a 5D NumPy array named array_5d with random integers ranging from 0 to 99 and a shape of (3, 4, 2, 3, 5).
- Define Condition:
- Define a condition to select elements in the array that are greater than 50 using boolean indexing.
- Boolean Indexing:
- Applied boolean indexing to select elements from array_5d that meet the defined condition.
- Print Results:
- Print the shape of the original 5D array, the boolean condition array, and the selected elements, including the shape of the selected elements 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