我对使用max(列表数组)和np.max(列表数组)之间的区别有疑问。
这是唯一的区别是Python返回代码所需的时间吗?
答案 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整数类型表示,因此它们成为浮点数。