首页 > 解决方案 > 为什么 NaN 值使 min 和 max 对顺序敏感?

问题描述

> import numpy as np

> min(50, np.NaN)
50   
> min(np.NaN, 50)
nan

(同样的行为发生在max

我知道我可以通过使用来避免这种行为numpy.nanmin。但是当顺序颠倒时,是什么导致了变化呢?min对输入顺序敏感吗?

标签: pythonnumpynan

解决方案


Yesnan破坏了正确的顺序,因为它总是比较为False. 很多事情nan都不一致:

In [2]: 3.0 < float('nan')
Out[2]: False

In [3]: float('nan') < 3.0
Out[3]: False

In [4]: float('nan') == 3.0
Out[4]: False

min并且max只能为您提供一致的结果,即您正在使用定义明确的排序,如果可以的话,数字类型不是nan


推荐阅读