Метод reduce
Метод reduce класса ufunc последовательно применяет операцию к элементам массива, накапливая результат. Для бинарных операций, таких как сложение или умножение, он сводит массив к одному значению, аналогично встроенной функции functools.reduce. Первым параметром метод принимает массив, вторым - ось, вдоль которой выполняется свёртка, а также поддерживает дополнительные параметры для управления типом данных и начальным значением.
Синтаксис
ufunc.reduce(array, axis=0, dtype=None, out=None, keepdims=False, initial=<no value>, where=True)
Пример
Давайте вычислим сумму всех элементов одномерного массива с помощью метода reduce унарной функции add:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
res = np.add.reduce(arr)
print(res)
Результат выполнения кода:
15
Пример
Давайте вычислим произведение всех элементов массива с помощью метода reduce функции multiply:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
res = np.multiply.reduce(arr)
print(res)
Результат выполнения кода:
120
Пример
Давайте выполним операцию логического И для всех элементов массива с помощью метода reduce функции logical_and:
import numpy as np
arr = np.array([True, True, False, True])
res = np.logical_and.reduce(arr)
print(res)
Результат выполнения кода:
False
Пример
Давайте применим метод reduce функции maximum для нахождения максимального значения в двумерном массиве вдоль оси 1:
import numpy as np
arr = np.array([[1, 6, 3], [8, 2, 5], [4, 9, 7]])
res = np.maximum.reduce(arr, axis=1)
print(res)
Результат выполнения кода:
[6 8 9]
Пример
Давайте используем параметр initial для задания начального значения при выполнении операции вычитания:
import numpy as np
arr = np.array([10, 2, 3])
res = np.subtract.reduce(arr, initial=100)
print(res)
Результат выполнения кода:
85
Пример
Давайте выполним свёртку массива с помощью битовой операции XOR, используя метод reduce функции bitwise_xor:
import numpy as np
arr = np.array([1, 2, 3, 4])
res = np.bitwise_xor.reduce(arr)
print(res)
Результат выполнения кода:
4
Смотрите также
-
метод
accumulate,
который сохраняет все промежуточные результаты свёртки -
метод
outer,
который применяет операцию ко всем парам элементов двух массивов -
метод
at,
который выполняет операцию над элементами массива по указанным индексам -
атрибут
identity,
который возвращает нейтральный элемент для операции