включает в себя максимум против ктаху против максимум



numpy имеет три разных функции, которые, похоже, могут быть использованы для одних и тех же вещей --- за исключением того, что numpy.maximum можете только использовать элементарно, в то время как numpy.max и numpy.amax может использоваться на определенных осях или на всех элементах. Почему есть больше, чем просто numpy.max? Есть ли в этом какая-то тонкость в исполнении?



(аналогично для min и amin и minimum)

751   2  

2 ответов:

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 подражать np.max в в определенной степени при использовании np.maximum.reduce:

>>> np.maximum.reduce(d)
9
>>> np.max(d)
9

базовое тестирование предполагает, что эти два подхода сопоставимы по производительности.

вы уже сказали почему np.maximum отличается-он возвращает массив, который является поэлементным максимумом между двумя массивами.

как np.amax и np.max: Они оба называют одну и ту же функцию - np.max - это просто псевдоним для np.amax, и они вычисляют максимум всех элементов в массиве или вдоль оси массива.

In [1]: import numpy as np

In [2]: np.amax
Out[2]: <function numpy.core.fromnumeric.amax>

In [3]: np.max
Out[3]: <function numpy.core.fromnumeric.amax>

Comments

    Ничего не найдено.