Spec-Zone.ru › NumPy 2.0

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, необязательно

Тип возвращаемого массива и аккумулятора, в котором суммируются элементы. Тип 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-d или если axis равно None, возвращается скаляр. Если указан массив вывода, возвращается ссылка на out.

См. также

ndarray.sum

Эквивалентный метод.

add

numpy.add.reduce эквивалентная функция.

cumsum

Кумулятивная сумма элементов массива.

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

Spec-Zone.ru

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