42

我正在使用 SciPy 的pearsonr(x,y)方法,但我无法弄清楚为什么会发生以下错误:

ValueError:形状不匹配:无法将对象广播到单个形状

它计算前两个(我正在循环运行数千个这样的测试)然后死掉。有没有人对问题可能有任何想法?

r_num = n*(np.add.reduce(xm*ym))

这是 pearsonr 方法中发生错误的行,任何帮助将不胜感激。

4

1 回答 1

51

这个特定的错误意味着该行的算术中使用的变量之一具有与同一行上的另一个不兼容的形状(即,既不同又非标量)。由于n和 的输出np.add.reduce()都是标量,这意味着问题在于xmym,这两者只是您的xy输入减去它们各自的平均值。

基于此,我的猜测是您的xy输入的形状彼此不同,这使得它们与元素乘法不兼容。

** 从技术上讲,并不是同一行上的变量具有不兼容的形状。唯一的问题是当两个变量相加、相乘等具有不兼容的形状时,变量是否是临时的(例如,函数输出)。只要在计算数学表达式之前有其他东西纠正了问题,同一行上具有不同形状的两个变量就可以了。

于 2013-06-05T22:02:04.117 回答