Spec-Zone.ru › NumPy 2.0

numpy.average

numpy.average(a, axis=None, weights=None, returned=False, *, keepdims=<no value>)[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 эквивалентно числу элементов, по которым вычисляется среднее значение.

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

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

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

Возвращает:
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, и axis=None.

ValueError

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

См. также

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.

С 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.

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

Spec-Zone.ru

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