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.