Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 计算标准偏差时的浮点误差?_Python_Numpy_Pandas - Fatal编程技术网

Python 计算标准偏差时的浮点误差?

Python 计算标准偏差时的浮点误差?,python,numpy,pandas,Python,Numpy,Pandas,使用pandas/numpy,在尝试计算标准偏差时,有时会出现浮点错误: FloatingPointError:在less中遇到无效值 我的代码如下所示: def historical_volatility(p): return p.pct_change().ewm(span=35, min_periods=35).std() 只有浮动的数据帧进入 我的理解是,由于计算标准偏差的技术原因,偏差特别小的情况将导致浮点错误 我怎样才能使它更健壮 另外,可以为低波动性设定“最小值”;如果结果

使用
pandas/numpy
,在尝试计算标准偏差时,有时会出现浮点错误:

FloatingPointError:在less中遇到无效值

我的代码如下所示:

def historical_volatility(p):
    return p.pct_change().ewm(span=35, min_periods=35).std()
只有浮动的数据帧进入

我的理解是,由于计算标准偏差的技术原因,偏差特别小的情况将导致浮点错误

我怎样才能使它更健壮


另外,可以为低波动性设定“最小值”;如果结果为0,则会很糟糕,因为我随后将除以这些数字。

计算标准偏差可能需要求方差的平方根。后者只有在精度损失的情况下才能为负值。如果是这种情况,您可能不在乎您的方差是1e-16还是零。如果您这样做,您可能需要使用扩展精度(不容易),或者切换到十进制算术。

计算标准偏差可能需要做方差的平方根。后者只有在精度损失的情况下才能为负值。如果是这种情况,您可能不在乎您的方差是1e-16还是零。如果您这样做,您可能需要使用扩展精度(不容易),或者切换到十进制算术。

您能提供一个复制此错误的示例吗?我不知道pandas/numpy,但您能使用十进制而不是浮点吗?它比较慢,但作为一种权衡,可能更准确。你能提供一个复制这个错误的样本吗?我不知道pandas/numpy,但你能用十进制代替float吗?它的速度较慢,但作为一种权衡,可以更准确