Spec-Zone.ru › NumPy 1.21

numpy.sum

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

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

Параметры
aarray_like

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

axisNone или int или кортеж из целых чисел, необязательно

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

Введено в версии 1.7.0.

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

dtypedtype, необязательно

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

outndarray, необязательно

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

keepdimsbool, необязательно

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

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

initialскаляр, необязательно

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

Введено в версии 1.15.0.

wherearray_like типа bool, необязательно

Элементы, которые следует включить в сумму. См. 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–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/generated/numpy.sum.html

Spec-Zone.ru

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