numpy.ufunc.reduce
метод
-
ufunc.reduce(a, axis=0, dtype=None, out=None, keepdims=False, initial=<no value>, where=True) -
Уменьшает размерность
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().
- Параметры
-
-
aarray_like -
Массив, к которому применяется действие.
-
axisNone or int or tuple of ints, optional -
Ось или оси, по которым выполняется сокращение. По умолчанию (
axis= 0) выполняется сокращение по первой размерности входного массива.axisможет быть отрицательным, в этом случае он считает от последней к первой оси.Новое в версии 1.7.0.
Если это None, сокращение выполняется по всем осям. Если это кортеж целых чисел, сокращение выполняется по нескольким осям, а не по одной оси или всем осям, как раньше.
Для операций, которые не являются коммутативными или не являются ассоциативными, выполнение сокращения по нескольким осям не определено. В настоящее время ufuncs не генерируют исключение в этом случае, но, вероятно, будут в будущем.
-
dtypedata-type code, optional -
Тип, используемый для представления промежуточных результатов. По умолчанию соответствует типу данных выходного массива, если он задан, или типу данных входного массива, если выходной массив не задан.
-
outndarray, None, or tuple of ndarray and None, optional -
Расположение, в которое сохраняется результат. Если не указан или None, возвращается новый массив. Для согласованности с
ufunc.__call__, если задан в качестве ключевого аргумента, он может быть заключён в кортеж из одного элемента.Изменено в версии 1.13.0: Разрешены кортежи для ключевого аргумента.
-
keepdimsbool, optional -
Если установлено в True, оси, которые были сокращены, остаются в результате как размерности с размером один. С этим параметром результат будет корректно транслироваться в исходный
arr.Новое в версии 1.7.0.
-
initialscalar, optional -
Значение, с которого нужно начать сокращение. Если у ufunc нет тождества или тип данных является объектом, это по умолчанию None — в противном случае по умолчанию ufunc.identity. Если
Noneзадан, используется первый элемент сокращения, и генерируется ошибка, если сокращение пустое.Новое в версии 1.15.0.
-
wherearray_like of bool, optional -
Булевый массив, который транслируется для соответствия размерностям
a, и выбирает элементы для включения в сокращение. Обратите внимание, что для ufuncs, таких какminimum, для которых не определено тождество, необходимо также передатьinitial.Новое в версии 1.17.0.
-
- Возвращает
-
-
rndarray -
Сокращённый массив. Если
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для инициализации сокращения другим значением иwhereдля выбора определенных элементов для включения:>>> np.add.reduce([10], initial=5) 15 >>> np.add.reduce(np.ones((2, 2, 2)), axis=(0, 2), initial=10) array([14., 14.]) >>> a = np.array([10., np.nan, 10]) >>> np.add.reduce(a, where=~np.isnan(a)) 20.0
Разрешает сокращения пустых массивов, где они обычно не работают, т. е. для ufuncs без тождества.
>>> np.minimum.reduce([], initial=np.inf) inf >>> np.minimum.reduce([[1., 2.], [3., 4.]], initial=10., where=[True, False]) array([ 1., 10.]) >>> np.minimum.reduce([]) Traceback (most recent call last): ... ValueError: zero-size array to reduction operation minimum which has no identity
© 2005–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.18/reference/generated/numpy.ufunc.reduce.html