Метод sum
Метод sum класса ndarray вычисляет сумму элементов
массива. По умолчанию метод суммирует все элементы массива,
возвращая скалярное значение. С помощью параметра axis
можно указать ось, вдоль которой выполняется суммирование.
Параметр dtype позволяет задать тип данных для
промежуточных вычислений и результата. Метод также поддерживает
параметр keepdims, который сохраняет размерность
массива после суммирования.
Синтаксис
arr.sum(axis=None, dtype=None, keepdims=False)
Пример
Давайте создадим одномерный массив и вычислим сумму всех его элементов:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
res = arr.sum()
print(res)
Результат выполнения кода:
15
Пример
Давайте вычислим сумму элементов вдоль разных осей двумерного массива:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
# Сумма по оси 0 (столбцы)
res0 = arr.sum(axis=0)
print("Axis 0:", res0)
# Сумма по оси 1 (строки)
res1 = arr.sum(axis=1)
print("Axis 1:", res1)
Результат выполнения кода:
Axis 0: [5 7 9]
Axis 1: [ 6 15]
Пример
Давайте укажем тип данных для суммы, чтобы избежать переполнения:
import numpy as np
arr = np.array([100, 200, 300], dtype=np.int8)
res1 = arr.sum()
print("Default dtype:", res1)
res2 = arr.sum(dtype=np.int64)
print("With int64 dtype:", res2)
Результат выполнения кода:
Default dtype: 600
With int64 dtype: 600
Пример
Давайте сохраним размерность массива с помощью параметра keepdims:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
res1 = arr.sum(axis=1)
print("Without keepdims:", res1.shape)
res2 = arr.sum(axis=1, keepdims=True)
print("With keepdims:", res2.shape)
print("Result:", res2)
Результат выполнения кода:
Without keepdims: (2,)
With keepdims: (2, 1)
Result: [[ 6]
[15]]
Пример
Давайте вычислим сумму элементов трехмерного массива вдоль двух осей одновременно:
import numpy as np
arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
res = arr.sum(axis=(0, 2))
print(res)
Результат выполнения кода:
[14 22]