Подтвердить что ты не робот

Функция максимума для поэлементного массива в NumPy (более двух массивов)

Я пытаюсь вернуть максимальные значения нескольких массивов в поэлементном сравнении. Например:

A = array([0, 1, 2])
B = array([1, 0, 3])
C = array([3, 0, 4])

Я хочу, чтобы результирующий массив был array([3,1,4]).

Я хотел использовать numpy.maximum, но он хорош только для двух массивов. Есть ли простая функция для более чем двух массивов?

4b9b3361

Ответ 1

С помощью этой настройки:

>>> A = np.array([0,1,2])
>>> B = np.array([1,0,3])
>>> C = np.array([3,0,4])

Вы можете:

>>> np.maximum.reduce([A,B,C])
array([3, 1, 4])

Или:

>>> np.vstack([A,B,C]).max(axis=0)
array([3, 1, 4])

Я бы выбрал первый вариант.

Ответ 2

Вы можете использовать reduce. Он неоднократно применяет двоичную функцию к списку значений...

Для A, B и C, приведенных в вопросе...

np.maximum.reduce([A,B,C])

 array([3,1,4])

Сначала он вычисляет np.maximum для A и B, а затем вычисляет np.maximum для (np.maximum для A и B) и C.