Ответ 1
np.max
- это просто псевдоним для np.amax
. Эта функция работает только на одном входном массиве и находит значение максимального элемента во всем массиве (возвращает скаляр). В качестве альтернативы он принимает аргумент axis
и найдет максимальное значение вдоль оси входного массива (возвращает новый массив).
>>> a = np.array([[0, 1, 6],
[2, 4, 1]])
>>> np.max(a)
6
>>> np.max(a, axis=0) # max of each column
array([2, 4, 6])
Поведение np.maximum
по умолчанию - это взять два массива и вычислить их максимальный размер элемента. Здесь "совместимый" означает, что один массив может быть передан другому. Например:
>>> b = np.array([3, 6, 1])
>>> c = np.array([4, 2, 9])
>>> np.maximum(b, c)
array([4, 6, 9])
Но np.maximum
также является универсальной функцией , что означает, что у нее есть другие функции и методы, которые пригодится при работе с многомерными массивами. Например, вы можете вычислить кумулятивный максимум по массиву (или определенной оси массива):
>>> d = np.array([2, 0, 3, -4, -2, 7, 9])
>>> np.maximum.accumulate(d)
array([2, 2, 3, 3, 3, 7, 9])
Это невозможно в np.max
.
Вы можете сделать np.maximum
imitate np.max
до некоторой степени при использовании np.maximum.reduce
:
>>> np.maximum.reduce(d)
9
>>> np.max(d)
9
Базовые тесты показывают, что два подхода сопоставимы по производительности.