On this page
numpy.average
numpy.average(a, axis=None, weights=None, returned=False)[source]-
Compute the weighted average along the specified axis.
Parameters: -
a : array_like -
Array containing data to be averaged. If
ais not an array, a conversion is attempted. -
axis : None or int or tuple of ints, optional -
Axis or axes along which to average
a. The default, axis=None, will average over all of the elements of the input array. If axis is negative it counts from the last to the first axis.New in version 1.7.0.
If axis is a tuple of ints, averaging is performed on all of the axes specified in the tuple instead of a single axis or all the axes as before.
-
weights : array_like, optional -
An array of weights associated with the values in
a. Each value inacontributes to the average according to its associated weight. The weights array can either be 1-D (in which case its length must be the size ofaalong the given axis) or of the same shape asa. Ifweights=None, then all data inaare assumed to have a weight equal to one. -
returned : bool, optional -
Default is
False. IfTrue, the tuple (average,sum_of_weights) is returned, otherwise only the average is returned. Ifweights=None,sum_of_weightsis equivalent to the number of elements over which the average is taken.
Returns: -
retval, [sum_of_weights] : array_type or double -
Return the average along the specified axis. When
returnedisTrue, return a tuple with the average as the first element and the sum of the weights as the second element.sum_of_weightsis of the same type asretval. The result dtype follows a genereal pattern. Ifweightsis None, the result dtype will be that ofa, orfloat64ifais integral. Otherwise, ifweightsis not None andais non- integral, the result type will be the type of lowest precision capable of representing values of bothaandweights. Ifahappens to be integral, the previous rules still applies but the result dtype will at least befloat64.
Raises: - ZeroDivisionError
-
When all weights along axis are zero. See
numpy.ma.averagefor a version robust to this type of error. - TypeError
-
When the length of 1D
weightsis not the same as the shape ofaalong axis.
See also
ma.average- average for masked arrays – useful if your data contains “missing” values
numpy.result_type- Returns the type that results from applying the numpy type promotion rules to the arguments.
Examples
>>> data = list(range(1,5)) >>> data [1, 2, 3, 4] >>> np.average(data) 2.5 >>> np.average(range(1,11), weights=range(10,0,-1)) 4.0>>> data = np.arange(6).reshape((3,2)) >>> data array([[0, 1], [2, 3], [4, 5]]) >>> np.average(data, axis=1, weights=[1./4, 3./4]) array([0.75, 2.75, 4.75]) >>> np.average(data, weights=[1./4, 3./4]) Traceback (most recent call last): ... TypeError: Axis must be specified when shapes of a and weights differ.>>> a = np.ones(5, dtype=np.float128) >>> w = np.ones(5, dtype=np.complex64) >>> avg = np.average(a, weights=w) >>> print(avg.dtype) complex256 -
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.17.0/reference/generated/numpy.average.html