【问题标题】:Why equal variables are compared in Pandas Cython code?为什么在 Pandas Cython 代码中比较相等的变量?
【发布时间】:2013-12-29 14:58:17
【问题描述】:

查看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),所以也许这个神奇的“==”运算符有什么作用?..

【问题讨论】:

  • 也许this 是原因

标签: pandas cython


【解决方案1】:

cur == cur 将对所有数字/对象都为 True,除非 cur 是 np.nan 本质上是一种快速的 nan 测试方法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-14
    • 1970-01-01
    • 2011-03-16
    相关资源
    最近更新 更多