Spec-Zone.ru › NumPy 1.18

numpy.sum

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

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

Параметры
aarray_like

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

axisNone or int or tuple of ints, optional

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

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

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

dtypedtype, optional

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

outndarray, optional

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

keepdimsbool, optional

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

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

initialscalar, optional

Начальное значение для суммы. Подробнее см. reduce.

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

wherearray_like of bool, optional

Элементы для включения в сумму. Подробнее см. reduce.

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

Возвращает
sum_along_axisndarray

Массив с той же формой, что и 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, функция Python math.fsum использует более медленный, но более точный подход к суммированию. Особенно при суммировании большого количества чисел с плавающей точкой с меньшей точностью, таких как 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–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.18/reference/generated/numpy.sum.html

Spec-Zone.ru

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