python - max 和 np.max 之间的差异

标签 python arrays numpy 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,而 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/

相关文章:

c++ - 动态数组分配随机崩溃

python - Numpy - 使用值作为另一个数组的索引

python - Python QuTiP 中的集成未成功

python - 如何在 Tensorflow 中以不同的学习率训练两个密集层?

python - Tkinter 按钮未定义

python - 为什么python中的字符串拼接顺序对速度影响很大?

python - 将交互式 Jupyter Notebook 导出到 html

arrays - 在向量存在之前用 'end' 创建索引数组

java - 使用 JOptionPane 显示容纳的数组

python - 大型数据集 python (scipy) 的 interp1d 性能问题的线性插值