Spec-Zone.ru › NumPy 1.19

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.19/reference/generated/numpy.sum.html

Spec-Zone.ru

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