Spec-Zone.ru › NumPy 1.20

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's 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–2021 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.20/reference/generated/numpy.sum.html

Spec-Zone.ru

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