scipy.stats.gmean

scipy.stats.gmean(a, axis=0, dtype=None, weights=None)[source]

Compute the geometric mean along the specified axis.

Return the geometric average of the array elements. That is: n-th root of (x1 * x2 * … * xn)

Parameters
aarray_like

Input array or object that can be converted to an array.

axisint or None, optional

Axis along which the geometric mean is computed. Default is 0. If None, compute over the whole array a.

dtypedtype, optional

Type of the returned array and of the accumulator in which the elements are summed. If dtype is not specified, it defaults to the dtype of a, unless a has an integer dtype with a precision less than that of the default platform integer. In that case, the default platform integer is used.

weightsarray_like, optional

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. Default is None, which gives each value a weight of 1.0.

Returns
gmeanndarray

See dtype parameter above.

See also

numpy.mean

Arithmetic average

numpy.average

Weighted average

hmean

Harmonic mean

Notes

The geometric average is computed over a single dimension of the input array, axis=0 by default, or all values in the array if axis=None. float64 intermediate and return values are used for integer inputs.

Use masked arrays to ignore any non-finite values in the input or that arise in the calculations such as Not a Number and infinity because masked arrays automatically mask any non-finite values.

References

1

“Weighted Geometric Mean”, Wikipedia, https://en.wikipedia.org/wiki/Weighted_geometric_mean.

Examples

>>> from scipy.stats import gmean
>>> gmean([1, 4])
2.0
>>> gmean([1, 2, 3, 4, 5, 6, 7])
3.3800151591412964