遇到的问题
很简单的代码计算相关性:
pcorr = pearsonr (y_ori, yval) [0]
之前使用都没有报错,但是用到一个新的项目后报错了:
TypeError: No loop matching the specified signature and casting was found for ufunc add
解决方案
- 第一种就是最常见的问题,y_ori和yval的类型不一致。此问题的解决方案是将它们转换成相同类型的矩阵:
y_ori = np.array(y_ori, ‘float32’)
yval = np.array(yval, ‘float32’)
但是这个解决方案对我不起效,经检查我的矩阵数字类型一致。
- 矩阵维度不一致或者与pearsonr要求的不一致。挺无语的,我一直在想为啥之前用的好好的现在突然不能用了,然后灵光一闪想起这两个矩阵我没有把它们转成一维数组。。。还是按照二维矩阵输入的,最后转成一维就成功解决了:
y_ori = y_ori.flatten()
yval = yval.flatten()
如果不是dtype的问题,就一定要检查是不是矩阵维数的问题!