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