【发布时间】:2018-02-04 10:12:03
【问题描述】:
当常量列表传递给corrcoef() 函数时,numpy 中的corrcoef 似乎会抛出 RuntimeWarning,例如下面的代码会抛出警告:
import numpy as np
X = [1.0, 2.0, 3.0, 4.0]
Y = [2, 2, 2, 2]
print(np.corrcoef(X, Y)[0, 1])
警告:
/usr/local/lib/python3.6/site-packages/numpy/lib/function_base.py:3003: RuntimeWarning: invalid value encountered in true_divide
c /= stddev[:, None]
谁能解释为什么当其中一个列表为常量时会引发此错误,以及当将常量列表传递给函数时如何防止此错误。
【问题讨论】:
-
这个错误可能是因为常量列表
Y的标准差(stddev)是0。我不确定计算某事物相对于恒定事物的协方差是否有意义...... -
@JoshKarpel 所以常量变量的协方差是未定义的?
-
quick Google(协方差规则 #4)表示随机变量相对于常数的协方差为零。所以它不是未定义的,但任何计算协方差的算法都可能假设它不会为零。
标签: python numpy correlation