Extract Unmasked data from a Masked NumPy array
NumPy: Masked Arrays Exercise-15 with Solution
Write a NumPy program that creates a masked array and extracts the unmasked data as a regular NumPy array.
Sample Solution:
Python Code:
import numpy as np
import numpy.ma as ma
# Create a 2D NumPy array of shape (4, 4) with random integers
array_2d = np.random.randint(0, 100, size=(4, 4))
# Define the condition to mask elements greater than 50
condition = array_2d > 50
# Create a masked array from the 2D array using the condition
masked_array = ma.masked_array(array_2d, mask=condition)
# Extract the unmasked data as a regular NumPy array
unmasked_data = masked_array.compressed()
# Print the original array, the masked array, and the unmasked data
print('Original 2D array:\n', array_2d)
print('Masked array (elements > 50 are masked):\n', masked_array)
print('Unmasked data extracted as a regular NumPy array:\n', unmasked_data)
Output:
Original 2D array: [[20 68 13 60] [83 45 47 49] [75 81 19 71] [10 66 56 13]] Masked array (elements > 50 are masked): [[20 -- 13 --] [-- 45 47 49] [-- -- 19 --] [10 -- -- 13]] Unmasked data extracted as a regular NumPy array: [20 13 45 47 49 19 10 13]
Explanation:
- Import Libraries:
- Imported numpy as "np" for array creation and manipulation.
- Imported numpy.ma as "ma" for creating and working with masked arrays.
- Create 2D NumPy Array:
- Create a 2D NumPy array named array_2d with random integers ranging from 0 to 99 and a shape of (4, 4).
- Define Condition:
- Define a condition to mask elements in the array that are greater than 50.
- Create Masked Array:
- Create a masked array from the 2D array using ma.masked_array, applying the condition as the mask. Elements greater than 50 are masked.
- Extract Unmasked Data:
- Used the compressed method of the masked array to extract the unmasked data as a regular NumPy array.
- Print the original 2D array, the masked array, and the unmasked data extracted as a regular NumPy array.
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