Spec-Zone.ru › NumPy 2.0

numpy.ma.average

ma.average(a, axis=None, weights=None, returned=False, *, keepdims=<no value>)[source]

Возвращает взвешенное среднее значение массива по заданной оси.

Параметры:
aarray_like

Данные для усреднения. Маскированные значения не учитываются при вычислении.

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

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

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

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

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

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

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

Флаг, указывающий, возвращать ли кортеж (result, sum of weights) в качестве результата (True) или только результат (False). По умолчанию False.

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

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

Введено в версии 1.23.0.

Возвращаемое значение:
average, [sum_of_weights](кортеж) скаляр или MaskedArray

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

Исключения:
ZeroDivisionError

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

TypeError

Если weights не имеет такой же формы, как a, и axis=None.

ValueError

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

Примеры

>>> a = np.ma.array([1., 2., 3., 4.], mask=[False, False, True, True])
>>> np.ma.average(a, weights=[3, 1, 0, 0])
1.25
>>> x = np.ma.arange(6.).reshape(3, 2)
>>> x
masked_array(
  data=[[0., 1.],
        [2., 3.],
        [4., 5.]],
  mask=False,
  fill_value=1e+20)
>>> data = np.arange(8).reshape((2, 2, 2))
>>> data
array([[[0, 1],
        [2, 3]],
       [[4, 5],
        [6, 7]]])
>>> np.ma.average(data, axis=(0, 1), weights=[[1./4, 3./4], [1., 1./2]])
masked_array(data=[3.4, 4.4],
         mask=[False, False],
   fill_value=1e+20)
>>> np.ma.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.
>>> avg, sumweights = np.ma.average(x, axis=0, weights=[1, 2, 3],
...                                 returned=True)
>>> avg
masked_array(data=[2.6666666666666665, 3.6666666666666665],
             mask=[False, False],
       fill_value=1e+20)

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

>>> np.ma.average(x, axis=1, keepdims=True)
masked_array(
  data=[[0.5],
        [2.5],
        [4.5]],
  mask=False,
  fill_value=1e+20)

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

Spec-Zone.ru

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