【问题标题】:numpy correlation coefficient error - RuntimeWarning: invalid value encountered in true_dividenumpy相关系数错误 - RuntimeWarning:true_divide中遇到无效值
【发布时间】:2017-06-11 12:42:14
【问题描述】:

当我尝试查找数据系列之间的相关性时出现以下错误:

>>> i = [1, 1, 1]
>>> j = [2, 2, 2]
>>> import numpy as np
>>> np.corrcoef(i, j)
/usr/local/lib/python3.5/dist-packages/numpy/lib/function_base.py:3003: RuntimeWarning: invalid value encountered in true_divide
 c /= stddev[:, None]
 array([[ nan,  nan],  
       [ nan,  nan]])`

实验了一下,我发现这似乎只有当数组中的所有整数都相同时才会发生。这是预期的还是我做错了什么?大多数情况下,我希望 i 和 j 中的数据具有不同的值,但可能存在相同的情况。

【问题讨论】:

标签: python numpy


【解决方案1】:

在相关公式中,计算除以每个系列的标准差。在您的情况下,标准差为零。

【讨论】:

    【解决方案2】:

    您可以检查系列的标准偏差,如果它们大于零,则可以使用 if 语句进行相关性。

    【讨论】:

    • 您不需要 if 语句。如果您查看数组,则根本没有变化,因此标准偏差为零
    • 显然,但我从广义上考虑这个问题,不仅仅是这里提供的示例数据系列。
    猜你喜欢
    • 1970-01-01
    • 2020-09-03
    • 2015-03-06
    • 2015-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-30
    • 2020-07-06
    相关资源
    最近更新 更多