scipy.stats.spearmanr:警告:在除法中遇到零除

时间:2011-08-12 10:57:47

标签: python scipy

我使用scipy.stats.spearmanr(a,b)并获得:

Warning: divide by zero encountered in divide

操作正确结束,但会显示警告。 ab都是“正常”数据,(没有“仅零”向量等)。知道原因是什么,或者如何暂停警告?

编辑:

这是spearmanr中的违规行:

/usr/lib/python2.7/dist-packages/scipy/stats/stats.pyc in spearmanr(a, b, axis)
   2226     rs = np.corrcoef(ar,br,rowvar=axisout)
   2227 
-> 2228     t = rs * np.sqrt((n-2) / ((rs+1.0)*(1.0-rs)))
   2229     prob = distributions.t.sf(np.abs(t),n-2)*2
   2230 

1 个答案:

答案 0 :(得分:4)

除以零是设计,对角线rs = 1。任何值都会发生这种情况。

但是,在scipy 0.9中,此错误已在spearmanr函数内本地静默。 相应的源代码行包含

np.seterr(divide='ignore') # rs can have elements equal to 1