numpy.ufunc.reduce
-
ufunc.reduce(a, axis=0, dtype=None, out=None, keepdims=False, initial) -
Уменьшает размерность
aна единицу, применяя ufunc по одной оси.Пусть
. Тогда
= результат итерации
jпо, кумулятивно применяя ufunc к каждому
. Для одномерного массива reduce производит результаты, эквивалентные:
r = op.identity # op = ufunc for i in range(len(A)): r = op(r, A[i]) return r
Например, add.reduce() эквивалентно sum().
Параметры: -
a : array_like -
Массив, на котором будет выполняться операция.
-
axis : None or int or tuple of ints, optional -
Ось или оси, по которым выполняется уменьшение. По умолчанию (
axis= 0) выполняется уменьшение по первой размерности входного массива.axisможет быть отрицательным, в этом случае он отсчитывается с последней до первой оси.Добавлена в версии 1.7.0.
Если это
None, выполняется уменьшение по всем осям. Если это кортеж из целых чисел, выполняется уменьшение по нескольким осям, а не по одной оси или всем осям, как раньше.Для операций, которые не являются коммутативными или ассоциативными, выполнение уменьшения по нескольким осям не определено. В настоящее время ufuncs не генерируют исключение в этом случае, но, вероятно, будут делать это в будущем.
-
dtype : data-type code, optional -
Тип, используемый для представления промежуточных результатов. По умолчанию соответствует типу данных выходного массива, если он предоставлен, или типу данных входного массива, если выходной массив не предоставлен.
-
out : ndarray, None, or tuple of ndarray and None, optional -
Местоположение, в которое сохраняется результат. Если не указано или
None, возвращается свежевыделенный массив. Для согласованности с ufunc.__call__, если указано в качестве ключевого аргумента, это может быть обернуто в кортеж из одного элемента.Изменено в версии 1.13.0: Кортежи разрешены для ключевого аргумента.
-
keepdims : bool, optional -
Если установлено в True, оси, которые уменьшаются, остаются в результате как размерности с размером один. С этим вариантом результат будет правильно транслироваться относительно исходного
arr.Добавлена в версии 1.7.0.
-
initial : scalar, optional -
Значение, с которого следует начать уменьшение. Если у ufunc нет идентичности или dtype является object, по умолчанию значение None - в противном случае по умолчанию является ufunc.identity. Если
Noneзадано, используется первый элемент уменьшения, и генерируется ошибка, если уменьшение пусто.Добавлена в версии 1.15.0.
Возвращает: -
r : ndarray -
Суммированный массив. Если
outбыл предоставлен,r— ссылка на него.
Примеры
>>> np.multiply.reduce([2,3,5]) 30
Пример многомерного массива:
>>> X = np.arange(8).reshape((2,2,2)) >>> X array([[[0, 1], [2, 3]], [[4, 5], [6, 7]]]) >>> np.add.reduce(X, 0) array([[ 4, 6], [ 8, 10]]) >>> np.add.reduce(X) # confirm: default axis value is 0 array([[ 4, 6], [ 8, 10]]) >>> np.add.reduce(X, 1) array([[ 2, 4], [10, 12]]) >>> np.add.reduce(X, 2) array([[ 1, 5], [ 9, 13]])Вы можете использовать ключевой аргумент
initialдля инициализации уменьшения другим значением.>>> np.add.reduce([10], initial=5) 15 >>> np.add.reduce(np.ones((2, 2, 2)), axis=(0, 2), initializer=10) array([14., 14.])
Позволяет выполнять уменьшения пустых массивов, в которых они обычно терпят неудачу, т.е. для ufuncs без идентичности.
>>> np.minimum.reduce([], initial=np.inf) inf >>> np.minimum.reduce([]) Traceback (most recent call last): ... ValueError: zero-size array to reduction operation minimum which has no identity -
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.15.4/reference/generated/numpy.ufunc.reduce.html