Spec-Zone.ru › NumPy 1.20

numpy.average

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

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

Параметры
aarray_like

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

axisNone or int or tuple of ints, optional

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

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

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

weightsarray_like, optional

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

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

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

returnedbool, optional

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

Возвращает
retval, [sum_of_weights]array_type or 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–2021 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.20/reference/generated/numpy.average.html

Spec-Zone.ru

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