Set elements in 3D NumPy array using Boolean Indexing
Setting Values with Boolean Indexing:
Write a NumPy program that creates a 3D NumPy array and uses boolean indexing to set elements that meet a condition to a new value.
Sample Solution:
Python Code:
import numpy as np
# Create a 3D NumPy array of shape (4, 4, 4) with random integers
array_3d = np.random.randint(0, 100, size=(4, 4, 4))
# Define the condition to set elements less than 50 to -1
condition = array_3d < 50
# Use boolean indexing to set elements that meet the condition to -1
array_3d[condition] = -1
# Print the original array and the modified array
print('Original 3D array:\n', array_3d)
print('Condition (elements < 50):\n', condition)
print('Modified 3D array with elements < 50 set to -1:\n', array_3d)
Output:
Original 3D array: [[[-1 -1 -1 -1] [-1 -1 -1 70] [-1 69 85 60] [81 63 -1 -1]] [[-1 61 61 82] [81 59 -1 74] [-1 -1 77 67] [80 99 -1 -1]] [[-1 -1 -1 66] [-1 58 -1 -1] [53 -1 75 -1] [61 65 92 -1]] [[84 94 71 -1] [59 85 -1 -1] [52 77 54 95] [-1 -1 -1 74]]] Condition (elements < 50): [[[ True True True True] [ True True True False] [ True False False False] [False False True True]] [[ True False False False] [False False True False] [ True True False False] [False False True True]] [[ True True True False] [ True False True True] [False True False True] [False False False True]] [[False False False True] [False False True True] [False False False False] [ True True True False]]] Modified 3D array with elements < 50 set to -1: [[[-1 -1 -1 -1] [-1 -1 -1 70] [-1 69 85 60] [81 63 -1 -1]] [[-1 61 61 82] [81 59 -1 74] [-1 -1 77 67] [80 99 -1 -1]] [[-1 -1 -1 66] [-1 58 -1 -1] [53 -1 75 -1] [61 65 92 -1]] [[84 94 71 -1] [59 85 -1 -1] [52 77 54 95] [-1 -1 -1 74]]]
Explanation:
- Import Libraries:
- Imported numpy as "np" for array creation and manipulation.
- Create 3D NumPy Array:
- Create a 3D NumPy array named array_3d with random integers ranging from 0 to 99 and a shape of (4, 4, 4).
- Define Condition:
- Define a condition to select elements in the array that are less than 50 using boolean indexing.
- Boolean Indexing to Set Values:
- Applied boolean indexing to set elements in array_3d that meet the condition (elements less than 50) to -1.
- Print Results:
- Print the original 3D array, the boolean condition array, and the modified 3D array 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