Return the weighted average of array over the given axis.
Parameters: |
-
a : array_like -
Data to be averaged. Masked entries are not taken into account in the computation. -
axis : int, optional -
Axis along which to average a . If None , averaging is done over the flattened array. -
weights : array_like, optional -
The importance that each element has in the computation of the average. The weights array can either be 1-D (in which case its length must be the size of a along the given axis) or of the same shape as a . If weights=None , then all data in a are assumed to have a weight equal to one. If weights is complex, the imaginary parts are ignored. -
returned : bool, optional -
Flag indicating whether a tuple (result, sum of weights) should be returned as output (True), or just the result (False). Default is False. |
Returns: |
-
average, [sum_of_weights] : (tuple of) scalar or MaskedArray -
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 . |
Examples
>>> a = np.ma.array([1., 2., 3., 4.], mask=[False, False, True, True])
>>> np.ma.average(a, weights=[3, 1, 0, 0])
1.25
>>> x = np.ma.arange(6.).reshape(3, 2)
>>> x
masked_array(
data=[[0., 1.],
[2., 3.],
[4., 5.]],
mask=False,
fill_value=1e+20)
>>> avg, sumweights = np.ma.average(x, axis=0, weights=[1, 2, 3],
... returned=True)
>>> avg
masked_array(data=[2.6666666666666665, 3.6666666666666665],
mask=[False, False],
fill_value=1e+20)