Count the number of masked elements along specific axis


To count the number of masked elements along specific axis, use the ma.MaskedArray.count_masked() method. The axis is set using the "axis" parameter. The method returns the total number of masked elements (axis=None) or the number of masked elements along each slice of the given axis.

The axis parameter is the axis along which to count. If None (default), a flattened version of the array is used.

Steps

At first, import the required library −

import numpy as np
import numpy.ma as ma

Creating a 4x4 array with int elements using the numpy.arange() method −

arr = np.arange(16).reshape((4,4))
print("Array...
", arr) print("
Array type...
", arr.dtype)

Get the dimensions of the Array −

print("
Array Dimensions...
",arr.ndim)

Get the shape of the Array −

print("
Our Masked Array Shape...
",arr.shape)

Get the number of elements of the Array −

print("
Elements in the Masked Array...
",arr.size)

Create a masked array −

arr = ma.array(arr)

arr[0, 1] = ma.masked
arr[1, 1] = ma.masked
arr[2, 1] = ma.masked
arr[2, 2] = ma.masked
arr[3, 0] = ma.masked
arr[3, 2] = ma.masked
arr[3, 3] = ma.masked

To count the number of masked elements along specific axis, use the ma.MaskedArray.count_masked() method. The axis is set using the "axis" parameter:

print("
Result (number of masked elements)...
",ma.count_masked(arr, axis = 1))

Example

# Python ma.MaskedArray - Count the number of masked elements along specific axis

import numpy as np
import numpy.ma as ma

# Creating a 4x4 array with int elements using the numpy.arange() method
arr = np.arange(16).reshape((4,4))
print("Array...
", arr) print("
Array type...
", arr.dtype) # Get the dimensions of the Array print("
Array Dimensions...
",arr.ndim) print("
Our Array type...
", arr.dtype) # Get the shape of the Array print("
Our Masked Array Shape...
",arr.shape) # Get the number of elements of the Array print("
Elements in the Masked Array...
",arr.size) # Create a masked array arr = ma.array(arr) arr[0, 1] = ma.masked arr[1, 1] = ma.masked arr[2, 1] = ma.masked arr[2, 2] = ma.masked arr[3, 0] = ma.masked arr[3, 2] = ma.masked arr[3, 3] = ma.masked # To count the number of masked elements along specific axis, use the ma.MaskedArray.count_masked() method # The axis is set using the "axis" parameter print("
Result (number of masked elements)...
",ma.count_masked(arr, axis = 1))

Output

Array...
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]

Array type...
int64

Array Dimensions...
2

Our Array type...
int64

Our Masked Array Shape...
(4, 4)

Elements in the Masked Array...
16

Result (number of masked elements)...
[1 1 2 3]

Updated on: 03-Feb-2022

82 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements