[英]Python ValueError: shape mismatch: objects cannot be broadcast to a single shape
[英]ValueError: shape mismatch: objects cannot be broadcast to a single shape
我正在使用 SciPy 的pearsonr(x,y)
方法,但我无法弄清楚为什么会发生以下错误:
ValueError:形状不匹配:对象不能广播到单个形状
它计算前两个(我在一个循环中运行数千个这样的测试)然后死亡。 有没有人对可能出现的问题有任何想法?
r_num = n*(np.add.reduce(xm*ym))
这是发生错误的 pearsonr 方法中的行,任何帮助将不胜感激。
这个特定的错误意味着在线算术中使用的一个变量的形状与同一行上的另一个变量不兼容(即,不同的和非标量的)。 由于n
和np.add.reduce()
的输出都是标量,这意味着问题在于xm
和ym
,这两个只是您的x
和y
输入减去它们各自的平均值。
基于此,我的猜测是您的x
和y
输入具有彼此不同的形状,使它们与元素乘法不兼容。
** 从技术上讲,并不是同一行上的变量具有不兼容的形状。 唯一的问题是当两个变量相加、相乘等具有不兼容的形状时,无论变量是否是临时的(例如,函数输出)。 在同一条线上具有不同形状的两个变量是可以的,只要在计算数学表达式之前有其他东西纠正了这个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.