2024-04-24 21:25:24 发布
网友
我正在使用SciPy的pearsonr(x,y)方法,我无法找出发生以下错误的原因:
pearsonr(x,y)
ValueError: shape mismatch: objects cannot be broadcast to a single shape
它计算前两个(我在一个循环中运行几千个这样的测试),然后死亡。有人知道问题出在哪里吗?
r_num = n*(np.add.reduce(xm*ym))
这是皮尔逊方法中出现错误的那一行,如有帮助,将不胜感激。
这个特殊的错误意味着,行上的算术运算中使用的一个变量的形状与同一行上的另一个变量的形状不兼容(即,既不同又非标量)。由于n和np.add.reduce()的输出都是标量,这意味着问题在于xm和ym,这两个输入减去它们各自的平均值。
n
np.add.reduce()
xm
ym
基于此,我的猜测是,您的x和y输入彼此具有不同的形状,这使得它们与元素乘法不兼容。
x
y
**从技术上讲,不是同一行上的变量具有不兼容的形状。唯一的问题是当两个变量被相加、相乘等,有不相容的形状时,不管这些变量是不是临时的(例如,函数输出)。两个形状不同的变量在同一条线上是可以的,只要在计算数学表达式之前有其他东西纠正了这个问题。
这个特殊的错误意味着,行上的算术运算中使用的一个变量的形状与同一行上的另一个变量的形状不兼容(即,既不同又非标量)。由于
n
和np.add.reduce()
的输出都是标量,这意味着问题在于xm
和ym
,这两个输入减去它们各自的平均值。基于此,我的猜测是,您的
x
和y
输入彼此具有不同的形状,这使得它们与元素乘法不兼容。**从技术上讲,不是同一行上的变量具有不兼容的形状。唯一的问题是当两个变量被相加、相乘等,有不相容的形状时,不管这些变量是不是临时的(例如,函数输出)。两个形状不同的变量在同一条线上是可以的,只要在计算数学表达式之前有其他东西纠正了这个问题。
相关问题 更多 >
编程相关推荐