Spec-Zone.ru › NumPy 1.17

numpy.sum

numpy.sum(a, axis=None, dtype=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>) [source]

Сумма элементов массива по заданной оси.

Параметры:
a : array_like

Элементы для суммирования.

axis : None or int or tuple of ints, optional

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

Добавлена в версии 1.7.0.

Если axis является кортежем целых чисел, суммирование выполняется по всем осям, указанным в кортеже, вместо одной оси или всех осей, как раньше.

dtype : dtype, optional

Тип возвращаемого массива и аккумулятора, в котором суммируются элементы. Тип a используется по умолчанию, если у a нет целочисленного типа с меньшей точностью, чем по умолчанию. В этом случае, если a со знаком, используется целочисленный тип платформы, а если a без знака, используется целое без знака той же точности, что и целочисленный тип платформы.

out : ndarray, optional

Альтернативный выходной массив, в который поместить результат. Он должен иметь ту же форму, что и ожидаемый результат, но тип выходных значений будет приведен, если необходимо.

keepdims : bool, optional

Если это значение установлено в True, оси, которые были уменьшены, остаются в результате как измерения с размером один. С этим вариантом результат будет правильно транслироваться по отношению к входному массиву.

Если передано значение по умолчанию, то keepdims не будет передано методу sum подклассов ndarray, однако любое отличное от значения по умолчанию будет. Если метод подкласса не реализует keepdims , будут подняты исключения.

initial : scalar, optional

Начальное значение суммы. Смотрите reduce для получения подробной информации.

Добавлена в версии 1.15.0.

where : array_like of bool, optional

Элементы, которые нужно включить в сумму. Смотрите reduce для получения подробной информации.

Добавлена в версии 1.17.0.

Возвращает:
sum_along_axis : ndarray

Массив с той же формой, что и a, с удаленной указанной осью. Если a является 0-мерным массивом или если axis равно None, возвращается скаляр. Если задан выходной массив, возвращается ссылка на out.

См. также

ndarray.sum
Эквивалентный метод.
add.reduce
Эквивалентная функциональность add.
cumsum
Кумулятивная сумма элементов массива.
trapz
Интегрирование значений массива с помощью составного правила трапеций.

mean, average

Примечания

Арифметика является модульной при использовании целочисленных типов, и при переполнении не возникает ошибок.

Сумма пустого массива является нейтральным элементом 0:

>>> np.sum([])
0.0

Для чисел с плавающей точкой числовая точность суммы (и np.add.reduce) в общем случае ограничена непосредственным добавлением каждого числа по отдельности к результату, что приводит к ошибкам округления на каждом шаге. Однако часто NumPy использует более точный численный подход (частичное попарное суммирование), что повышает точность во многих случаях использования. Эта улучшенная точность всегда обеспечивается, когда не указан axis. Когда axis задан, это будет зависеть от того, по какой оси производится суммирование. Технически, для обеспечения наилучшей скорости, улучшенная точность используется только тогда, когда суммирование выполняется по быстрой оси в памяти. Обратите внимание, что точность может отличаться в зависимости от других параметров. В отличие от NumPy, функция math.fsum Python использует более медленный, но более точный подход к суммированию. Особенно при суммировании большого количества чисел с плавающей точкой с меньшей точностью, таких как float32, числовые ошибки могут стать значительными. В таких случаях может быть целесообразно использовать dtype=”float64” для использования более высокой точности для выходных данных.

Примеры

>>> np.sum([0.5, 1.5])
2.0
>>> np.sum([0.5, 0.7, 0.2, 1.5], dtype=np.int32)
1
>>> np.sum([[0, 1], [0, 5]])
6
>>> np.sum([[0, 1], [0, 5]], axis=0)
array([0, 6])
>>> np.sum([[0, 1], [0, 5]], axis=1)
array([1, 5])
>>> np.sum([[0, 1], [np.nan, 5]], where=[False, True], axis=1)
array([1., 5.])

Если аккумулятор слишком мал, происходит переполнение:

>>> np.ones(128, dtype=np.int8).sum(dtype=np.int8)
-128

Вы также можете начать суммирование со значения, отличного от нуля:

>>> np.sum([10], initial=5)
15

© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.17.0/reference/generated/numpy.sum.html

Spec-Zone.ru

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