Return the average of the masked array elements over axis 0 in Numpy

NumpyServer Side ProgrammingProgramming

To return the average of the masked array elements, use the MaskedArray.average() method in Python Numpy. The "axis" parameter is used to axis along which to average the array. If None, averaging is done over the flattened array.

The weights parameter suggests the importance that each element has in the computation of the average. The weights array can either be 1-D or of the same shape as a. If weights=None, then all data in a are assumed to have a weight equal to one. The 1-D calculation is −

avg = sum(a * weights) / sum(weights)

The function returns the average along the specified axis. When returned is True, return a tuple with the average as the first element and the sum of the weights as the second element. The return type is np.float64 if a is of integer type and floats smaller than float64, or the input data-type, otherwise. If returned, sum_of_weights is always float64.

Steps

At first, import the required library −

import numpy as np
import numpy.ma as ma

Create an array with int elements using the numpy.array() method −

arr = np.array([[65, 68, 81], [93, 33, 76], [73, 88, 51], [62, 45, 67]])
print("Array...\n", arr)

Create a masked array and mask some of them as invalid −

maskArr = ma.masked_array(arr, mask =[[1, 1, 0], [ 0, 0, 0], [0, 1, 0], [0, 1, 0]])
print("\nOur Masked Array...\n", maskArr)

Get the type of the masked array −

print("\nOur Masked Array type...\n", maskArr.dtype)

Get the dimensions of the Masked Array −

print("\nOur Masked Array Dimensions...\n",maskArr.ndim)

Get the shape of the Masked Array −

print("\nOur Masked Array Shape...\n",maskArr.shape)

Get the number of elements of the Masked Array −

print("\nNumber of elements in the Masked Array...\n",maskArr.size)

To return the average of the masked array elements, use the MaskedArray.average() method in Python Numpy. The "axis" parameter is used to axis along which to average the array. If None, averaging is done over the flattened array −

resArr = np.ma.average(maskArr, axis = 0)
print("\nResultant Array..\n.", resArr)

Example

import numpy as np
import numpy.ma as ma

# Create an array with int elements using the numpy.array() method
arr = np.array([[65, 68, 81], [93, 33, 76], [73, 88, 51], [62, 45, 67]])
print("Array...\n", arr)

# Create a masked array and mask some of them as invalid
maskArr = ma.masked_array(arr, mask =[[1, 1, 0], [ 0, 0, 0], [0, 1, 0], [0, 1, 0]])
print("\nOur Masked Array...\n", maskArr)

# Get the type of the masked array
print("\nOur Masked Array type...\n", maskArr.dtype)

# Get the dimensions of the Masked Array
print("\nOur Masked Array Dimensions...\n",maskArr.ndim)

# Get the shape of the Masked Array
print("\nOur Masked Array Shape...\n",maskArr.shape)

# Get the number of elements of the Masked Array
print("\nNumber of elements in the Masked Array...\n",maskArr.size)

# To return the average of the masked array elements, use the MaskedArray.average() method in Python Numpy
# The "axis" parameter is used to axis along which to average the array.
# If None, averaging is done over the flattened array.
resArr = np.ma.average(maskArr, axis = 0)
print("\nResultant Array..\n.", resArr)

Output

Array...
[[65 68 81]
[93 33 76]
[73 88 51]
[62 45 67]]

Our Masked Array...
[[-- -- 81]
[93 33 76]
[73 -- 51]
[62 -- 67]]

Our Masked Array type...
int64

Our Masked Array Dimensions...
2

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

Number of elements in the Masked Array...
12

Resultant Array..
. [76.0 33.0 68.75]
raja
Updated on 04-Feb-2022 12:17:27

Advertisements