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