numpy.ma.average#
-
ma.среднее(a, axis=None, weights=None, returned=False, *, keepdims=
значение> )[источник]# Возвращает взвешенное среднее массива по заданной оси.
- Параметры:
- aarray_like
Данные для усреднения. Маскированные записи не учитываются в вычислениях.
- осьNone или int или кортеж ints, опционально
Ось или оси, по которым производится усреднение a. По умолчанию, axis=None, будет усреднять по всем элементам входного массива. Если axis является кортежем целых чисел, усреднение выполняется по всем осям, указанным в кортеже, вместо одной оси или всех осей, как раньше.
- весаarray_like, необязательный
Массив весов, связанных со значениями в a. Каждое значение в a вносит вклад в среднее значение в соответствии с его связанным весом. Массив весов должен иметь ту же форму, что и a если ось не указана, в противном случае веса должны иметь размерности и форму, согласующиеся с a вдоль указанной оси. Если weights=None, тогда все данные в a предполагаются имеющими вес, равный единице. Расчёт:
avg = sum(a * weights) / sum(weights)
где сумма берется по всем включенным элементам. Единственное ограничение на значения веса заключается в том, что sum(weights) не должен быть 0.
- возвращёнbool, необязательно
Флаг, указывающий, является ли кортеж
(result, sum of weights)должен возвращаться как вывод (True) или только результат (False). По умолчанию False.- keepdimsbool, необязательно
Если установлено значение True, оси, которые были сокращены, остаются в результате как измерения с размером один. С этой опцией результат будет корректно транслироваться против исходного a. Примечание: keepdims не будет работать с экземплярами
numpy.matrixили других классов, методы которых не поддерживают keepdims.Новое в версии 1.23.0.
- Возвращает:
- среднее, [sum_of_weights](кортеж) скаляра или MaskedArray
Среднее значение вдоль указанной оси. Когда возвращается True, верните кортеж со средним значением в качестве первого элемента и суммой весов в качестве второго элемента. Тип возвращаемого значения np.float64 if a имеет целочисленный тип и числа с плавающей точкой меньше чем
float64, или входной тип данных, в противном случае. Если возвращается, sum_of_weights всегдаfloat64.
- Вызывает:
- ZeroDivisionError
Когда все веса вдоль оси равны нулю. См.
numpy.ma.averageдля версии, устойчивой к этому типу ошибки.- TypeError
Когда веса не имеет той же формы, что и a, и axis=None.
- ValueError
Когда веса не имеет размерностей и формы, согласованных с a вдоль указанных ось.
Примеры
>>> import numpy as np >>> 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)