numpy.average#

numpy.среднее(a, axis=None, weights=None, returned=False, *, keepdims= значение>)[источник]#

Вычислите взвешенное среднее вдоль указанной оси.

Параметры:
aarray_like

Массив, содержащий данные для усреднения. Если a не является массивом, предпринимается попытка преобразования.

осьNone или int или кортеж ints, опционально

Ось или оси, по которым производится усреднение a. По умолчанию, axis=None, будет усреднять по всем элементам входного массива. Если ось отрицательна, она отсчитывается от последней к первой оси. Если ось является кортежем целых чисел, усреднение выполняется по всем осям, указанным в кортеже, вместо одной оси или всех осей, как раньше.

весаarray_like, необязательный

Массив весов, связанных со значениями в a. Каждое значение в a вносит вклад в среднее значение в соответствии с его связанным весом. Массив весов должен иметь ту же форму, что и a если ось не указана, в противном случае веса должны иметь размерности и форму, согласующиеся с a вдоль указанной оси. Если weights=None, тогда все данные в a предполагаются имеющими вес, равный единице. Расчёт:

avg = sum(a * weights) / sum(weights)

где сумма берется по всем включенным элементам. Единственное ограничение на значения веса заключается в том, что sum(weights) не должен быть 0.

возвращёнbool, необязательно

По умолчанию False. Если True, кортеж (average, sum_of_weightsвозвращается, в противном случае возвращается только среднее значение. Если weights=None, sum_of_weights эквивалентно количеству элементов, по которым берется среднее.

keepdimsbool, необязательно

Если установлено значение True, оси, которые были сокращены, остаются в результате как измерения с размером один. С этой опцией результат будет корректно транслироваться против исходного a. Примечание: keepdims не будет работать с экземплярами numpy.matrix или других классов, методы которых не поддерживают keepdims.

Новое в версии 1.23.0.

Возвращает:
retval, [sum_of_weights]array_type или double

Возвращает среднее значение вдоль указанной оси. Когда возвращён является True, возвращает кортеж со средним значением в качестве первого элемента и суммой весов в качестве второго элемента. sum_of_weights имеет тот же тип, что и retval. Тип результата следует общему шаблону. Если веса равно None, результирующий dtype будет таким же, как у a , или float64 if a является целочисленным. В противном случае, если веса не равно None и a не является целым, тип результата будет типом с наименьшей точностью, способным представлять значения обоих a и веса. Если a оказывается целочисленным, предыдущие правила всё ещё применяются, но результирующий dtype будет по крайней мере float64.

Вызывает:
ZeroDivisionError

Когда все веса вдоль оси равны нулю. См. numpy.ma.average для версии, устойчивой к этому типу ошибки.

TypeError

Когда веса не имеет той же формы, что и a, и axis=None.

ValueError

Когда веса не имеет размерностей и формы, согласованных с a вдоль указанных ось.

Смотрите также

mean
ma.average

среднее для маскированных массивов — полезно, если ваши данные содержат «пропущенные» значения

numpy.result_type

Возвращает тип, полученный применением правил продвижения типов NumPy к аргументам.

Примеры

>>> import numpy as np
>>> data = np.arange(1, 5)
>>> data
array([1, 2, 3, 4])
>>> np.average(data)
2.5
>>> np.average(np.arange(1, 11), weights=np.arange(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.

С keepdims=True, следующий результат имеет форму (3, 1).

>>> np.average(data, axis=1, keepdims=True)
array([[0.5],
       [2.5],
       [4.5]])
>>> data = np.arange(8).reshape((2, 2, 2))
>>> data
array([[[0, 1],
        [2, 3]],
       [[4, 5],
        [6, 7]]])
>>> np.average(data, axis=(0, 1), weights=[[1./4, 3./4], [1., 1./2]])
array([3.4, 4.4])
>>> np.average(data, axis=0, weights=[[1./4, 3./4], [1., 1./2]])
Traceback (most recent call last):
    ...
ValueError: Shape of weights must be consistent
with shape of a along specified axis.