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'smath.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