python - 为什么 NaN 值使 min 和 max 对顺序敏感?
问题描述
> import numpy as np
> min(50, np.NaN)
50
> min(np.NaN, 50)
nan
(同样的行为发生在max
)
我知道我可以通过使用来避免这种行为numpy.nanmin
。但是当顺序颠倒时,是什么导致了变化呢?min
对输入顺序敏感吗?
解决方案
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
推荐阅读
- c# - 重定向视频流
- visual-c++ - 使用 /external 编译器选项时,我们如何避免来自 Windows 标头的编译指示包警告?
- python - 如何在 tkinter 多框架应用程序中定位小部件(例如按钮、表格或条目)?
- arcore - 给定 2 个像素,如何使用 ARCore 计算实际距离?
- python - Python OpenSSL 指定 DNS 服务器
- python-3.x - 在 Spyder IDE 中使用 Python 装饰器
- web-scraping - 我需要帮助网络抓取评论部分
- r - 从水平到垂直数据框重塑,连接并创建新列
- javascript - d3 中的求和和数据操作问题
- r - 为什么 R 的 strftime 会返回上个月的午夜?