rro*_*ndd 29 python math numpy
当将NumPy Not-a-Number值转换为布尔值时,它变为True,例如如下.
>>> import numpy as np
>>> bool(np.nan)
True
Run Code Online (Sandbox Code Playgroud)
这与我直觉所期望的完全相反.这种行为是否存在合理的原则?
(我怀疑在Octave中可能会出现相同的行为.)
NPE*_*NPE 24
这绝不是NumPy特有的,但与Python对待NaN的方式一致:
In [1]: bool(float('nan'))
Out[1]: True
Run Code Online (Sandbox Code Playgroud)
我认为可以合理地认为NaN的真值应该是假的.但是,这不是语言现在的工作方式.
Python 真值测试表明考虑了以下值False:
- 任何数字类型的零,例如,0,0L,0.0,0j.
Numpy可能选择坚持这种行为并阻止NaN False在布尔上下文中进行评估.但请注意,您可以使用它numpy.isnan来测试NaN.
| 归档时间: |
|
| 查看次数: |
5529 次 |
| 最近记录: |