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 -
Интеграция значений массива с использованием составного правила трапеций.
Примечания
Арифметика является модульной при использовании целочисленных типов, и ошибка не возникает при переполнении.
Сумма пустого массива является нейтральным элементом 0:
>>> np.sum([]) 0.0
Для чисел с плавающей точкой числовая точность суммы (и
np.add.reduce) в общем случае ограничена прямым добавлением каждого числа к результату, что приводит к округлениям ошибок на каждой стадии. Однако часто NumPy использует более эффективный с точки зрения численных вычислений подход (частичное суммирование по парам), что приводит к улучшенной точности во многих случаях использования. Это улучшение точности всегда обеспечивается, когда не задаетсяaxis. Когдаaxisзадается, это будет зависеть от того, по какой оси выполняется суммирование. Технически, чтобы обеспечить максимальную скорость, улучшенная точность используется только тогда, когда суммирование выполняется по быстрой оси в памяти. Обратите внимание, что точность может незначительно различаться в зависимости от других параметров. В отличие от NumPy, функция Pythonmath.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.18/reference/generated/numpy.sum.html