numpy.average()

Функция numpy.average() вычисляет среднее массива, опционально с весами. В отличие от np.mean, поддерживает параметр weights и возвращает взвешенное среднее sum(a*w)/sum(w).

Сигнатура

numpy.average(a, axis=None, weights=None, returned=False, *, keepdims=<no value>)

Параметры

  • a — входной массив.

  • axis — ось редукции.

  • weights — массив весов той же формы, что и a (или подходящий для broadcasting).

  • returned — если True, возвращает кортеж (среднее, сумма_весов).

  • keepdims — сохранять ли размерности.

Возвращаемое значение

Скаляр или ndarray. При returned=True — кортеж из двух массивов.

Примеры

Пример 1. Простое среднее.

import numpy as np

arr = np.array([1, 2, 3, 4, 5])
print(np.average(arr))
3.0

Пример 2. Взвешенное среднее.

grades = np.array([4, 5, 3])
weights = np.array([0.2, 0.5, 0.3])  # доли в итоговой оценке
print(np.average(grades, weights=weights))
4.2

Пример 3. Среднее по оси.

m = np.array([[1, 2, 3], [4, 5, 6]])
print(np.average(m, axis=0))
print(np.average(m, axis=1))
[2.5 3.5 4.5]
[2. 5.]

Пример 4. Сглаживание показаний с весами «больше — свежее».

readings = np.array([22.1, 22.4, 22.3, 22.7, 23.0])
w = np.arange(1, 6)
print(np.average(readings, weights=w))
22.62

Пример 5. Получение суммы весов.

a = np.array([10, 20, 30])
w = np.array([1, 2, 3])
mean, total = np.average(a, weights=w, returned=True)
print(mean, total)
23.333333333333332 6.0

См. также

Примечание

Лицензия и источники

Техническое описание функции адаптировано из официальной документации NumPy (https://numpy.org/doc/stable/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.