mean

mean(x: array, /, *, axis: int | Tuple[int, ...] | None = None, keepdims: bool = False) array

Calculates the arithmetic mean of the input array x.

Parameters:
  • x (array) – input array. Should have a floating-point data type.

  • axis (Optional[Union[int, Tuple[int, ...]]]) – axis or axes along which arithmetic means must be computed. By default, the mean must be computed over the entire array. If a tuple of integers, arithmetic means must be computed over multiple axes. Default: None.

  • keepdims (bool) – if True, the reduced axes (dimensions) must be included in the result as singleton dimensions, and, accordingly, the result must be compatible with the input array (see Broadcasting). Otherwise, if False, the reduced axes (dimensions) must not be included in the result. Default: False.

Returns:

out (array) – if the arithmetic mean was computed over the entire array, a zero-dimensional array containing the arithmetic mean; otherwise, a non-zero-dimensional array containing the arithmetic means. The returned array must have the same data type as x.

Note

While this specification recommends that this function only accept input arrays having a floating-point data type, specification-compliant array libraries may choose to accept input arrays having an integer data type. While mixed data type promotion is implementation-defined, if the input array x has an integer data type, the returned array must have the default real-valued floating-point data type.

Notes

Special Cases

Let N equal the number of elements over which to compute the arithmetic mean. For real-valued operands,

  • If N is 0, the arithmetic mean is NaN.

  • If x_i is NaN, the arithmetic mean is NaN (i.e., NaN values propagate).

For complex floating-point operands, real-valued floating-point special cases should independently apply to the real and imaginary component operations involving real numbers. For example, let a = real(x_i) and b = imag(x_i), and

  • If N is 0, the arithmetic mean is NaN + NaN j.

  • If a is NaN, the real component of the result is NaN.

  • Similarly, if b is NaN, the imaginary component of the result is NaN.

Note

Array libraries, such as NumPy, PyTorch, and JAX, currently deviate from this specification in their handling of components which are NaN when computing the arithmetic mean. In general, consumers of array libraries implementing this specification should use isnan() to test whether the result of computing the arithmetic mean over an array have a complex floating-point data type is NaN, rather than relying on NaN propagation of individual components.