我对仅使用 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,而 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 整数类型表示,因此它们变成了 float 。
关于python - max 和 np.max 之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50920346/