tlpipe.utils.np_util.average¶
-
tlpipe.utils.np_util.
average
(a, axis=None, weights=None, returned=False)[source]¶ Return the weighted average of array over the given axis.
Copied from newer version of numpy, as old version raise “ComplexWarning: Casting complex values to real discards the imaginary part”.
Parameters: - a (array_like) – Data to be averaged. Masked entries are not taken into account in the computation.
- axis (int, optional) – Axis along which the average is computed. The default is to compute the average of 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] – 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.
Return type: (tuple of) scalar or MaskedArray
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) >>> print x [[ 0. 1.] [ 2. 3.] [ 4. 5.]] >>> avg, sumweights = np.ma.average(x, axis=0, weights=[1, 2, 3], ... returned=True) >>> print avg [2.66666666667 3.66666666667]