numpy.ufunc.reduce
метод
-
ufunc.reduce(array, axis=0, dtype=None, out=None, keepdims=False, initial=<no value>, where=True) -
Уменьшает размерность массива
arrayна единицу, применяя 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().
- Параметры
-
-
arrayarray_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 элемента.Изменено в версии 1.13.0: Разрешены кортежи для ключевого аргумента.
-
keepdimsbool, optional -
Если установлено в значение True, оси, которые сокращаются, остаются в результате в качестве измерений с размером один. С этим параметром результат будет корректно транслироваться по отношению к исходному
array.Новое в версии 1.7.0.
-
initialscalar, optional -
Значение, с которого начинается сокращение. Если у ufunc нет идентичности или тип данных object, по умолчанию это None - иначе по умолчанию это ufunc.identity. Если
Noneзадано, используется первый элемент сокращения, и возникает ошибка, если сокращение пустое.Новое в версии 1.15.0.
-
wherearray_like of bool, optional -
Булевый массив, который транслируется для соответствия размерностям
arrayи выбирает элементы для включения в сокращение. Обратите внимание, что для 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–2021 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.20/reference/generated/numpy.ufunc.reduce.html