max和np.max之间的差异

时间:2018-06-19 03:46:47

标签: python arrays numpy max

我对使用max(列表数组)和np.max(列表数组)之间的区别有疑问。

这是唯一的区别是Python返回代码所需的时间吗?

1 个答案:

答案 0 :(得分:1)

它们在边缘情况下可能不同,例如包含NaN的列表。

import numpy as np
a = max([2, 4, np.nan])     # 4
b = np.max([2, 4, np.nan])  # nan

NumPy在这种情况下传播NaN,而Python max的行为不太确定。

有关数据类型的细微问题:

a = max([10**n for n in range(20)])     # a is an integer
b = np.max([10**n for n in range(20)])  # b is a float

当然,numpy.max or max ? Which one is faster?

中记录了运行时差异

通常,对于Python列表应使用max,对于NumPy数组使用np.max以最小化意外数量。例如,我的第二个例子并不是np.max,而是关于数据类型转换:使用np.max列表首先转换为NumPy数组,但像10**19这样的元素太大了由NumPy整数类型表示,因此它们成为浮点数。