小编典典

numpy max vs amax vs maximum

python

numpy的具有看起来他们可被用于同样的东西三个不同的函数—不同之处在于numpy.maximum
被用于逐元素,而numpy.maxnumpy.amax可以在特定轴,或所有元件一起使用。为什么不仅仅存在numpy.max?在性能上有一些微妙之处吗?

(类似minvs. aminvs. minimum


阅读 209

收藏
2020-12-20

共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模仿:np.max``np.maximum.reduce

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

基础测试表明这两种方法在性能上是可比的。它们应该是np.max()实际np.maximum.reduce执行计算的调用

2020-12-20