python - 为什么在 Python/Numpy 中将 "Not a Number"值转换为 bool 值时等于 True?

标签 python math numpy

当将 NumPy Not-a-Number 值转换为 bool 值时,它变为 True,例如如下。

>>> import numpy as np
>>> bool(np.nan)
True

这与我的直觉预期完全相反。这种行为背后是否有合理的原则?

(我怀疑在 Octave 中可能会出现相同的行为。)

最佳答案

这绝不是 NumPy 特有的,但与 Python 处理 NaN 的方式一致:

In [1]: bool(float('nan'))
Out[1]: True

规则在 documentation 中有详细说明。 .

我认为有理由认为 NaN 的真值应该是 False。但是,这不是该语言目前的工作方式。

关于python - 为什么在 Python/Numpy 中将 "Not a Number"值转换为 bool 值时等于 True?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15686318/

相关文章:

python - 在测试客户端上设置 header 似乎不起作用

python - -bash : ./manage.py:权限被拒绝

python - 在交互式 Python shell 中输入对象时调用什么内置函数?

3D(游戏)引擎编程中使用的数学

python - 如何在通过将 txt 文件加载到 scipy 程序形成的图上的特定间隔内插入点?

python - 获取家庭路由器上的客户端 MAC 地址列表

c++ - 如何知道我们的数组中存在三角形三元组?

java - 用数学方法检查一个数是正数、负数还是 0

python - 乘以行并按单元格值附加到数据框

python - 如何确保 numpy 数组是二维行向量或列向量?