这个错误意味着什么:ValueError:形状不匹配:对象无法广播到单个形状?

Ale*_*ear 26 python pearson

我使用scipy pearsonr(x,y)方法,我无法弄清楚为什么会发生这种错误.它计算前两个(我在循环中运行数千个这样的测试)然后死掉.有没有人对问题可能是什么有任何想法?

r_num = n*(np.add.reduce(xm*ym))
Run Code Online (Sandbox Code Playgroud)

这是发生错误的pearsonr方法中的行,任何帮助都将非常感谢谢谢!

AMa*_*acK 28

这个特殊的错误意味着在线上算术中使用的变量之一具有与同一行上的另一个不兼容的形状(即,不同的和非标量的).由于n和输出np.add.reduce()都是标量,这意味着问题在于,xm并且ym,其中两个只是你的xy输入减去他们各自的手段.

基于此,我的猜测是你xy输入的形状彼此不同,使它们与元素乘法不相容.

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