Python 3.1
我正在对缺少值的数据进行一些计算。任何涉及缺失值的计算都会导致缺失值。
我正在考虑使用float('nan')
来表示缺失值。安全吗?最后我会检查
def is_missing(x):
return x!=x # I hope it's safe to use to check for NaN
看起来很完美,但我在文档中找不到明确的确认。
我当然可以使用“无”,但这需要我使用try
/ except TypeError
进行每次计算才能检测到它。我也可以使用Inf
,但我更不确定它的工作原理。
编辑:
@MSN我明白使用NaN很慢。但如果我的选择是:
# missing value represented by NaN
def f(a, b, c):
return a + b * c
或
# missing value represented by None
def f(a, b, c):
if a is None or b is None or c is None:
return None
else:
return a + b * c
我认为NaN选项仍然更快,不是吗?
答案 0 :(得分:1)
这是安全的,但是如果FPU必须触摸x
它可能会非常慢(因为某些硬件将NaN视为一种特殊情况):Is it a good idea to use IEEE754 floating point NaN for values which are not set?