Numpy MaskedArray.masked_where() function | Python (original) (raw)

Last Updated : 27 Sep, 2019

In many circumstances, datasets can be incomplete or tainted by the presence of invalid data. For example, a sensor may have failed to record a data, or recorded an invalid value. The numpy.ma module provides a convenient way to address this issue, by introducing masked arrays.Masked arrays are arrays that may have missing or invalid entries.

numpy.MaskedArray.masked_where() function is used to mask an array where a condition is met.It return arr as an array masked where condition is True. Any masked values of arr or condition are also masked in the output.

Syntax : numpy.ma.masked_where(condition, arr, copy=True)

Parameters:
condition : [array_like] Masking condition. When condition tests floating point values for equality, consider using masked_values instead.
arr : [ndarray] Input array which we want to mask.
copy : [bool] If True (default) make a copy of arr in the result. If False modify arr in place and return a view.

Return : [ MaskedArray] The result of masking arr where condition is True..

Code #1 :

import numpy as geek

import numpy.ma as ma

in_arr = geek.array([ 1 , 2 , 3 , - 1 , 2 ])

print ( "Input array : " , in_arr)

mask_arr = ma.masked_where(in_arr< = 1 , in_arr)

print ( "Masked array : " , mask_arr)

Output:

Input array : [ 1 2 3 -1 2] Masked array : [-- 2 3 -- 2]

Code #2 :

import numpy as geek

import numpy.ma as ma

in_arr1 = geek.arange( 4 )

print ( "1st Input array : " , in_arr1)

mask_arr1 = ma.masked_where(in_arr1 = = 1 , in_arr1)

print ( "1st Masked array : " , mask_arr1)

in_arr2 = geek.arange( 4 )

print ( "2nd Input array : " , in_arr2)

mask_arr2 = ma.masked_where(in_arr2 = = 3 , in_arr2)

print ( "2nd Masked array : " , mask_arr2)

res_arr = ma.masked_where(mask_arr1 = = 3 , mask_arr2)

print ( "Resultant Masked array : " , res_arr)

Output:

1st Input array : [0 1 2 3] 1st Masked array : [0 -- 2 3] 2nd Input array : [0 1 2 3] 2nd Masked array : [0 1 2 --] Resultant Masked array : [0 -- 2 --]