为什么在Pandas Cython代码中比较相等的变量?

时间:2013-12-11 15:01:15

标签: pandas cython

查看https://github.com/pydata/pandas/blob/master/pandas/algos.pyx中的ewma方法,有一个奇怪的代码:

for i from 1 <= i < N:
    cur = input[i]
    prev = output[i - 1]

    if **cur == cur:**
        if **prev == prev**:
            output[i] = oldw * prev + neww * cur
        else:
            output[i] = neww * cur
    else:
        output[i] = prev

为什么比较cur == cur和prev == prev?

我正在尝试用Java实现这个方法但得到不同的结果(例如Python中的7.01644573和Java中的7.013072549019608),所以也许这个神奇的“==”运算符会做什么?...

1 个答案:

答案 0 :(得分:6)

对于所有数字/对象,

cur == cur将为True,如果cur是np.nan则除外 本质上是一种快速的纳米测试方法