Spec-Zone.ru › NumPy 1.21

numpy.average

numpy.average(a, axis=None, weights=None, returned=False)[source]

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

Параметры
aarray_like

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

axisNone или int или кортеж из целых чисел, необязательно

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

Добавлена в версии 1.7.0.

Если axis является кортежем из целых чисел, усреднение выполняется по всем осям, указанным в кортеже, а не по одной оси или всем осям, как раньше.

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

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

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

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

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

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

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

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

Возможные исключения
ZeroDivisionError

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

TypeError

Когда длина одномерного weights не совпадает с формой a вдоль оси.

См. также

mean
ma.average

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

numpy.result_type

Возвращает тип, который получается в результате применения правил повышения типа numpy к аргументам.

Примеры

>>> 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.
>>> a = np.ones(5, dtype=np.float128)
>>> w = np.ones(5, dtype=np.complex64)
>>> avg = np.average(a, weights=w)
>>> print(avg.dtype)
complex256

© 2005–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/generated/numpy.average.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API