我正在使用scipy pearsonr(x,y)方法,我无法弄清楚为什么会发生这种错误。它计算前两个(我在循环中运行了几千个这样的测试),然后就死了。有没有人对这个问题有什么想法?
r_num = n*(np.add.reduce(xm*ym))
这是发生错误的pearsonr方法中的一行,非常感谢任何帮助谢谢!
答案 0 :(得分:22)
这个特殊的错误意味着在线上算术中使用的变量之一具有与同一行上的另一个不兼容的形状(即,不同的和非标量的)。由于n
和np.add.reduce()
的输出都是标量,这意味着问题在于xm
和ym
,其中两个只是你的x
和y
输入减去各自的手段。
基于此,我的猜测是您的x
和y
输入彼此具有不同的形状,使它们与逐元素乘法不兼容。
**从技术上讲,并非同一行上的变量具有不兼容的形状。唯一的问题是当两个变量被添加,相乘等具有不兼容的形状时,变量是否是临时的(例如,函数输出)。只要在评估数学表达式之前其他东西纠正了问题,同一行上具有不同形状的两个变量就可以了。