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