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, необязательно
-
Тип возвращаемого массива и аккумулятора, в котором суммируются элементы. Тип dtype
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-мерным, или еслиaxisравно None, возвращается скаляр. Если указан выходной массив, возвращается ссылка наout.
См. также
Примечания
Арифметика является модульной при использовании целочисленных типов, и ошибка не возникает при переполнении.
Сумма пустого массива — это нейтральный элемент 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–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/generated/numpy.sum.html