pearsonr计算相关性时报错:No loop matching the specified signature and casting was found for ufunc add

遇到的问题

很简单的代码计算相关性:

pcorr = pearsonr (y_ori, yval) [0]

之前使用都没有报错,但是用到一个新的项目后报错了:

TypeError: No loop matching the specified signature and casting was found for ufunc add

解决方案

  1. 第一种就是最常见的问题,y_ori和yval的类型不一致。此问题的解决方案是将它们转换成相同类型的矩阵:

y_ori = np.array(y_ori, ‘float32’)
yval = np.array(yval, ‘float32’)

但是这个解决方案对我不起效,经检查我的矩阵数字类型一致。

  1. 矩阵维度不一致或者与pearsonr要求的不一致。挺无语的,我一直在想为啥之前用的好好的现在突然不能用了,然后灵光一闪想起这两个矩阵我没有把它们转成一维数组。。。还是按照二维矩阵输入的,最后转成一维就成功解决了:

y_ori = y_ori.flatten()
yval = yval.flatten()

如果不是dtype的问题,就一定要检查是不是矩阵维数的问题!

你可能感兴趣的:(矩阵,python,线性代数)