gpt4 book ai didi

python - numpy max vs amax vs 最大值

转载 作者:IT老高 更新时间:2023-10-28 21:09:15 24 4
gpt4 key购买 nike

numpy 具有三个不同的功能,它们似乎可以用于相同的事情 --- 除了 numpy.maximum 可以 以元素方式使用,而numpy.maxnumpy.amax 可用于特定轴或所有元素。为什么不只是 numpy.max?这在性能上有什么微妙之处吗?

(同样适用于 min vs. amin vs. minimum)

最佳答案

np.max 只是 np.amax 的别名。此函数仅适用于 single 输入数组,并在整个数组中找到最大元素的值(返回一个标量)。或者,它接受一个 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 也是 universal function这意味着它具有在处理多维数组时有用的其他功能和方法。例如,您可以计算数组(或数组的特定轴)上的累积最大值:

>>> 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.reduce时,可以让np.maximum在一定程度上模仿np.max:

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

基本测试表明这两种方法的性能相当;它们应该是 np.max() actually calls np.maximum.reduce进行计算。

关于python - numpy max vs amax vs 最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33569668/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com