numpy的具有看起来他们可被用于同样的东西三个不同的函数—不同之处在于numpy.maximum可 仅 被用于逐元素,而numpy.max且numpy.amax可以在特定轴,或所有元件一起使用。为什么不仅仅存在numpy.max?在性能上有一些微妙之处吗?
numpy.maximum
numpy.max
numpy.amax
(类似minvs. aminvs. minimum)
min
amin
minimum
np.max只是的别名np.amax。此函数仅在 单个 输入数组上起作用,并在整个数组中找到最大元素的值(返回标量)。或者,它接受一个axis参数,然后沿输入数组的轴找到最大值(返回一个新数组)。
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是获取 两个 数组并计算其按元素的最大值。在这里,“兼容”意味着一个阵列可以广播到另一个阵列。例如:
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.max``np.maximum.reduce
>>> np.maximum.reduce(d) 9 >>> np.max(d) 9
基础测试表明这两种方法在性能上是可比的。它们应该是np.max()实际np.maximum.reduce执行计算的调用。
np.max()
np.maximum.reduce