我正在使用SciPy的pearsonr(x,y)方法,无法弄清楚为什么会发生以下错误:ValueError:形状不匹配:无法将对象广播到单个形状它计算前两个(我正在循环中运行这些测试中的数千个),然后死亡。有人对问题可能有什么想法吗?r_num = n*(np.add.reduce(xm*ym))这是发生错误的peersonr方法中的这一行,我们将不胜感激。
1 回答

慕妹3242003
TA贡献1824条经验 获得超6个赞
此特定错误表示,在线上进行算术运算时使用的变量之一的形状与同一线上的另一个变量不兼容(即,不同且非标量)。由于n
和的输出np.add.reduce()
都是标量,这意味着问题出在xm
和ym
,这两个只是您x
和y
输入减去各自的均值。
基于此,我的猜测是,您x
和y
输入的形状互不相同,从而使它们与元素级乘法不兼容。
**从技术上讲,并不是同一行上的变量具有不兼容的形状。唯一的问题是,无论变量是临时变量(例如函数输出)还是非变量,相加,相乘等两个变量的形状都不兼容。只要在数学表达式求值之前有其他方法可以纠正问题,则在同一行上具有两个不同形状的两个变量就可以了。
添加回答
举报
0/150
提交
取消