numpy.mean
numpy.mean(a, axis=None, dtype=None, out=None, keepdims=<no value>)
Функция mean() вычисляет среднее арифметическое значений элементов массива.
-
- a - массив NumPy или подобный массиву объект.
- Входные данные.
- axis - число, кортеж целых чисел или None (необязательный параметр).
- Позволяет задать ось или несколько осей вдоль которых вычисляется среднее арифметическое. По умолчанию установлено значение None, что соответствует вычислению среднего арифметического всех элементов массива, так словно он сжат до одной оси.
- dtype - тип данных NumPy (необязательный параметр).
- По умолчанию равен None, что означает использование для вычисления среднего арифметического целых чисел типа float64, а для чисел с плавающей точкой тип данных будет совпадать с типом данных входного массива.
- out - массив NumPy (необязательный параметр).
- Массив в который можно поместить результат функции. Данный массив должен соответствовать форме и типу данных результирующего массива функции (зачастую, тип данных может быть преобразован автоматически). Указание данного параметра, позволяет избежать лишней операции присваивания тем самым немного ускоряя работу вашего кода. Полезный параметр если вы очень часто обращаетесь к функции в цикле.
- keepdims - True или False (необязательный параметр).
- Если данный параметр указан как True, то результат работы функции по указанным осям будет способен к транслированию по исходному массиву, т.е. результат функции оформляется в массив с количеством осей исходного массива. Если параметр установлен в значение False, то результатом работы функции будет либо число, либо одномерный массив чисел. Доступно в NumPy с версии 1.9.0.
-
- результат - массив NumPy или число
- Среднее арифметическое значений элементов массива в виде числа для одномерного массива, или многомерного если параметр
axis = None
. Для многомерного массива возвращает массив NumPy если в параметреaxis
оси указаны.
Примеры
>>> import numpy as np
>>>
>>> a = [1, 2, 3, 5, 6, 7]
>>>
>>> np.mean(a)
4.0
Если у массива больше одной оси (больше одного измерения), то мы можем найти среднее вдоль каждой из них:
>>> >>> a = np.arange(18).reshape(3, 6)
>>> a
array([[ 0, 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10, 11],
[12, 13, 14, 15, 16, 17]])
>>>
>>> # Среднее столбцов:
... np.mean(a, axis = 0)
array([ 6., 7., 8., 9., 10., 11.])
>>>
>>> # Среднее строк:
... np.mean(a, axis = 1)
array([ 2.5, 8.5, 14.5])
Параметр keepdims
позволяет сохранить форму исходного массива, что позволяет в дальнейшем использовать механизм транслирования:
>>> np.mean(a, axis = 0, keepdims = True)
array([[ 6., 7., 8., 9., 10., 11.]])
>>>
>>> np.mean(a, axis = 1, keepdims = True)
array([[ 2.5],
[ 8.5],
[14.5]])
Параметр out
позволяет указать массив в который необходимо поместить результат расчетов:
>>> m = np.zeros(6,)
>>> m
array([0., 0., 0., 0., 0., 0.])
>>>
>>> np.mean(a, axis = 0, out = m)
array([ 6., 7., 8., 9., 10., 11.])
>>>
>>> m
array([ 6., 7., 8., 9., 10., 11.])
Параметр dtype
полезен, если тип данных входного массива float32 или float16, но необходима максимальная точность, которую эти типы данных обеспечить не могут:
>>> a = np.float16(np.random.rand(1000, 1000))
>>> a
array([[0.875 , 0.10693, 0.7925 , ..., 0.958 , 0.031 , 0.305 ],
[0.3625 , 0.8843 , 0.4902 , ..., 0.398 , 0.6904 , 0.826 ],
[0.2339 , 0.8037 , 0.555 , ..., 0.0922 , 0.596 , 0.898 ],
...,
[0.5513 , 0.5435 , 0.4707 , ..., 0.3118 , 0.1296 , 0.1608 ],
[0.8955 , 0.454 , 0.953 , ..., 0.1741 , 0.2286 , 0.879 ],
[0.872 , 0.1453 , 0.1837 , ..., 0.946 , 0.5513 , 0.8936 ]],
dtype=float16)
>>>
>>> np.mean(a)
0.5005
>>>
>>> np.mean(a, dtype = np.float64)
0.5003466272966862