在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
Run Code Online (Sandbox Code Playgroud)
为什么比较cur == cur和prev == prev?
我试图在Java中实现这个方法但得到不同的结果(例如,Python中的7.01644573和Java中的7.013072549019608),所以这个神奇的"=="运算符可能会做什么?