当我通过scipy使用pearsonr函数时,为什么我收到nan作为变量的输出?

时间:2019-11-14 19:59:29

标签: numpy scipy correlation pearson-correlation

我在一个数据帧中有两个变量,称为关联性

代表:

这是我的自变量(X)

 correlation["X"]
    Out[35]: 
    0        0.362351
    1        3.238616
    2        2.602781
    3        3.976034
    4        1.961889
    5        1.402206
    6        0.580704
    7        2.254004
    8        0.866440
    9        5.200244
    10       1.339573

这是我的因变量或Y

correlation["Y"]
Out[36]: 
0          333.65
1            0.00
2         1846.80
3            0.00
4            0.00
5            0.00
6            0.00
7            0.00
8          191.56
9            0.00
10           0.00

from numpy.random import randn
from scipy.stats import pearsonr
from numpy import corrcoef
from scipy.stats import spearmanr


data1 = correlation["X"]
data2 = correlation["Y"]
# calculate Pearson's correlation
corr, _ = pearsonr(data1, data2)
print('Pearsons correlation: %.3f' % corr)

但是,当我打印函数时,输出是:

print('Pearsons correlation: %.3f' % corr)
Pearsons correlation: **nan**

为什么会这样?

1 个答案:

答案 0 :(得分:0)

好吧,我承认我对SciPy一无所知,但我希望数组应该具有相同数量的元素。从我的角度来看,X有35个,Y有36个,也许是一个问题(至少对于某些版本,正如沃伦在上面评论的那样对他有用)。

相关问题