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