最大值和 np.max 之间的区别



我有一个关于仅使用 max(list array( 和 np.max(list array( 之间区别的问题。

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

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

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

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

关于数据类型也存在一些微妙的问题:

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或max记录?哪一个更快?

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

最新更新